第 四 课 : 创 建 云 端 的 MySQL 数 据 库 服 务 器 概 念 介 绍... 3 功 能 特 点... 3 服 务 层 和 版 本... 5 轻 松 上 手... 5 新 建 MySQL 服 务 器... 6 建 立 高 效 安 全 的 连 接... 10 MySQL 服 务 器 的 管 理 和 监 控... 14 迁 移 数 据 库 到 Azure... 19 配 置 数 据 同 步 复 制 到 MySQL Database on Azure... 20 服 务 限 制... 20 本 阶 段 常 见 问 题... 21 自 我 小 测 试... 22 参 考 资 源... 23
MySQL Database on Azure 是 什 么? MySQL 一 直 也 享 有 着 很 高 的 用 户 关 注 和 使 用 度, 然 而 Azure 用 户 若 想 在 Azure 环 境 中 使 用 MySQL, 以 往 只 能 以 IaaS 的 方 式 创 建 虚 拟 机, 并 安 装 MySQL 软 件 相 对 PaaS 的 方 式, 这 种 做 法 成 本 略 高, 无 法 充 分 发 挥 云 计 算 的 优 势 通 过 与 开 源 社 区 之 间 的 合 作,Azure 支 持 了 大 量 开 源 软 件 和 框 架, 涵 盖 了 大 部 分 主 流 互 联 网 开 源 软 件 和 应 用 框 架, 并 且 其 数 量 还 在 不 断 增 加 最 近,MySQL Database on Azure 服 务 商 用 版 已 正 式 推 出 MySQL Database on Azure 服 务 是 微 软 在 由 世 纪 互 联 运 营 的 Azure 云 平 台 上 开 发 的 MySQL 数 据 库 服 务, 该 服 务 由 世 纪 互 联 运 营, 能 为 用 户 提 供 高 可 用 性, 合 理 的 性 价 比, 以 及 全 托 管 体 验, 无 需 人 工 维 护 基 础 架 构, 即 可 在 云 端 快 速 部 署 此 外,MySQL Database on Azure 提 供 了 多 个 不 同 性 能 层 级, 以 及 在 不 同 性 能 层 级 之 间 的 扩 展 与 收 缩, 从 而 简 化 了 用 户 的 购 买 体 验 MySQL Database on Azure 服 务 正 式 商 用 版 是 继 本 地 的 SQL Server Azure 虚 拟 机 上 运 行 的 SQL Server, 以 及 Azure SQL 数 据 库 等 解 决 方 案 以 来, 最 新 推 出 的 支 持 开 源 MySQL, 面 向 中 国 市 场 的 关 系 型 数 据 库 解 决 方 案 世 纪 互 联 运 营 的 MySQL Database on Azure 服 务 具 备 下 列 核 心 优 势 : 基 于 Azure 存 储 提 供 数 据 本 地 异 地 多 重 备 份, 保 障 数 据 高 度 可 靠, 支 持 99.9% 的 运 行 时 间 服 务 级 别 协 议, 支 持 异 地 灾 备 恢 复 提 供 防 火 墙 功 能 并 支 持 SSL 链 接 访 问 数 据 库, 保 证 数 据 高 度 安 全 支 持 30 天 数 据 备 份, 帮 助 您 轻 松 进 行 数 据 回 溯 提 供 多 个 不 同 性 能 层 级 的 版 本, 支 持 弹 性 扩 展 与 收 缩, 简 化 购 买 体 验 提 供 各 项 数 据 库 性 能 指 标 的 监 控 以 及 日 志, 让 您 轻 松 方 便 的 了 解 数 据 库 运 行 情 况 兼 容 MySQL 协 议 ( 目 前 支 持 MySQL 5.5 和 5.6), 您 可 以 用 熟 悉 的 MySQL 平 台 与 技 术 进 行 开 发 和 集 成 支 持 数 据 从 企 业 本 地 的 MySQL 数 据 库 同 步 到 MySQL Database on Azure, 更 好 地 满 足 企 业 构 建 混 合 云 的 需 求
概 念 介 绍 MySQL Database on Azure 是 Azure 提 供 的 一 种 关 系 型 数 据 库 服 务, 全 面 兼 容 MySQL 协 议, 为 用 户 提 供 了 一 个 全 托 管 的 性 能 稳 定, 操 作 简 便, 高 安 全 性 的 数 据 库 平 台 只 需 一 到 两 分 钟 即 可 在 Azure 上 构 建 一 个 具 备 高 可 用 性 的 MySQL 数 据 库 服 务 器, 而 无 需 自 己 管 理 虚 拟 机 或 基 础 架 构 MySQL Database on Azure 为 客 户 提 供 了 方 便 易 用 的 管 理 和 维 护 的 功 能 和 体 验 用 户 可 以 方 便 地 监 控 数 据 库 性 能 和 资 源 的 利 用, 并 根 据 需 要 在 不 同 的 版 本 间 切 换 相 对 于 用 户 自 行 在 Azure 虚 拟 机 上 搭 建 的 MySQL 服 务 器,MySQL Database on Azure 提 供 了 更 好 的 性 价 比 功 能 特 点 支 持 弹 性 扩 展 与 收 缩, 简 化 购 买 体 验 您 不 再 需 要 反 复 计 算 数 据 库 服 务 器 的 配 置 需 求, 您 也 不 再 需 要 为 如 何 调 节 各 方 面 的 配 置 以 得 到 最 好 的 数 据 库 性 能 而 烦 恼,MySQL Database on Azure 服 务 提 供 了 多 个 不 同 性 能 的 版 本, 您 可 以 根 据 当 前 的 性 能 需 求 选 择 一 个 相 匹 配 的 版 本, 后 续 再 根 据 应 用 的 实 际 运 行 情 况 进 行 弹 性 扩 展 或 收 缩 我 们 的 服 务 按 小 时 计 费, 账 单 透 明, 帮 助 您 更 有 效 的 利 用 资 源 数 据 高 度 可 靠 和 安 全 MySQL Database on Azure 基 于 Azure 的 地 域 冗 余 存 储 来 提 供 数 据 的 高 可 靠 性, 在 同 一 个 区 域 中 自 动 同 步 复 制 3 个 本 地 副 本, 同 时 在 超 过 一 千 公 里 外 的 区 域 通 过 异 步 的 方 式 复 制 3 个 异 地 副 本, 保 证 数 据 的 高 度 可 靠 在 数 据 访 问 的 安 全 性 方 面, 该 服 务 提 供 防 火 墙 功 能, 同 时 支 持 通 过 SSL 链 接 访 问 数 据 库 提 供 高 可 用, 支 持 灾 备 恢 复, 保 障 业 务 连 续 性 MySQL Database on Azure 提 供 99.9% 的 运 行 时 间 服 务 级 别 协 议 (SLA), 保 证 服 务 的 高 可 用 和 用 户 业 务 的 连 续 性 同 时 基 于 地 域 冗 余 的 数 据 存 储 支 持 异 地 灾 备 恢 复, 使 得 用 户 即 使 面 对 极 端 情 况 仍 然 可 以 获 得 妥 善 保 护 30 天 数 据 备 份, 轻 松 数 据 回 溯 MySQL Database on Azure 每 天 在 您 指 定 的 时 间 备 份 您 的 数 据 库, 同 时 也 支 持 即 时 备 份 备 份 保 存 30 天 之 久, 且 备 份 空 间 不 占 用 数 据 库 本 身 分 配 的 数 据 存 储 限 额 您 可 以 一 键 轻 松 进 行 数 据 回 溯
快 速 部 署, 无 需 人 工 维 护 基 础 架 构 层 MySQL Database on Azure 帮 助 您 轻 松 快 速 地 在 一 两 分 钟 内 在 云 端 部 署 一 个 具 备 高 可 用 的 MySQL 数 据 库 服 务 器, 提 供 自 动 软 件 修 补 功 能, 让 您 无 需 对 数 据 库 服 务 进 行 任 何 基 础 架 构 的 维 护 提 供 完 善 的 监 控 体 验 MySQL Database on Azure 支 持 您 实 时 监 控 各 项 数 据 库 性 能 指 标 以 及 历 史 数 据, 让 您 更 好 地 了 解 使 用 情 况, 及 时 发 现 问 题 并 进 行 调 整 同 时 支 持 开 启 下 载 数 据 库 日 志, 以 便 数 据 库 管 理 员 更 好 地 管 理 和 优 化 数 据 库 支 持 熟 悉 的 平 台 和 工 具 MySQL Database on Azure 兼 容 MySQL 协 议, 支 持 MySQL 5.5 和 MySQL 5.6 版 本 您 可 以 用 常 见 的 支 持 MySQL 的 平 台 与 技 术 进 行 开 发 与 集 成, 也 可 以 用 您 熟 悉 的 管 理 工 具, 如 Workbench, Navicat 等 进 行 操 作 支 持 异 地 数 据 库 同 步, 满 足 企 业 构 建 混 合 云 的 需 求 MySQL Database on Azure 支 持 异 地 数 据 库 同 步 的 功 能, 用 户 可 以 将 Azure 以 外 的 MySQL 实 例 设 为 主 库, 把 运 行 在 MySQL on Azure 上 的 实 例 设 为 从 库, 通 过 标 准 的 MySQL 主 从 数 据 同 步 的 方 式 同 步 数 据 到 Azure 以 更 好 地 满 足 企 业 各 种 混 合 云 场 景 的 需 求 同 时 数 据 库 同 步 的 功 能 也 可 以 帮 助 您 实 现 更 完 善 更 灵 活 的 云 端 迁 移 体 验
服 务 层 和 版 本 目 前 MySQL Database on Azure 提 供 四 个 不 同 版 本, 性 能 从 低 到 高 按 倍 数 提 高 MySQL Database on Azure 目 前 已 正 式 商 用 MS 1 MS 2 MS 3 MS 4 每 分 钟 处 约 2 倍 于 MS1 的 性 约 2.5 倍 于 MS 2 约 3 倍 于 MS3 的 性 能 层 级 理 几 百 个 能, 每 分 钟 处 理 几 百 的 性 能, 每 分 钟 处 性 能, 每 分 钟 处 理 事 务 个 到 上 千 个 事 务 理 几 千 个 事 务 几 千 到 上 万 个 事 务 免 费 数 据 库 容 量 100GB 100GB 100GB 100GB 数 据 备 份 每 日 自 动 备 份, 备 份 保 留 30 天 每 日 自 动 备 份, 备 份 保 留 30 天 每 日 自 动 备 份, 备 份 保 留 30 天 每 日 自 动 备 份, 备 份 保 留 30 天 最 大 支 持 同 时 连 接 数 50 100 250 750 MySQL Database on Azure 支 持 快 速 灵 活 地 在 不 同 版 本 之 间 切 换 您 可 以 根 据 应 用 目 前 的 性 能 估 算 选 择 一 个 版 本, 然 后 根 据 实 际 的 运 行 情 况 和 MySQL Database on Azure 提 供 的 性 能 监 控 做 及 时 调 整 以 找 到 一 个 最 合 适 的 版 本 轻 松 上 手 如 果 您 还 不 是 Azure 用 户, 可 通 过 一 元 人 民 币 免 费 试 用 活 动 注 册 并 试 用 您 只 需 通 过 在 线 方 式 注 册 并 付 款 1 元 人 民 币, 账 户 激 活 后 您 即 可 得 到 高 达 1,500 元 人 民 币 的 Azure 用 量 免 费 信 用 额 度, 有 效 期 一 个 月 试 用 期 间, 如 果 您 决 定 购 买 成 为 正 式 用 户, 还 可 随 时 通 过 在 线 充 值 方 式 在 线 购 买 详 情 请 访 问 :http://www.azure.cn/pricing/1rmb-trial/
准 备 好 Azure 帐 号 后, 下 文 将 向 您 介 绍 如 何 创 建 使 用 管 理 MySQL Database on Azure 数 据 库 您 可 以 创 建 一 个 全 新 的 MySQL 数 据 库, 也 可 以 迁 移 一 个 本 地 的 MySQL 数 据 库 到 Azure 上 注 意 : 为 了 保 持 简 洁, 除 非 另 行 说 明, 下 文 的 MySQL 数 据 库 和 MySQL 服 务 器 均 指 通 过 MySQL Database on Azure 服 务 创 建 的 数 据 库 实 例, 以 及 实 例 中 所 运 行 的 服 务, 而 非 Azure 虚 拟 机 中 运 行 的 MySQL 数 据 库 新 建 MySQL 服 务 器 目 前 用 户 可 以 通 过 Azure 管 理 门 户 新 建 MySQL 服 务 器, 具 体 操 作 步 骤 如 下 : 1. 登 陆 到 Azure 管 理 门 户 :https://manage.windowsazure.cn 2. 在 左 侧 导 航 窗 格 中 选 择 MySQL Database on Azure 3. 单 击 页 面 底 部 的 新 建, 随 后 屏 幕 上 会 出 现 一 个 显 示 可 创 建 内 容 的 列 表 4. 单 击 MySQL Database on Azure, 点 击 快 速 创 建 5. 根 据 屏 幕 提 示 输 入 相 关 参 数, 点 击 创 建 按 钮 注 意 : 用 户 名 是 以 服 务 器 名 称 % 用 户 名 的 形 式 组 成, 在 连 接 该 数 据 库 时, 请 注 意 填
写 登 录 名 全 称 例 如 在 上 图 的 例 子 中, 登 录 时 需 要 填 写 的 用 户 名 全 称 为 MySQLtest123%azuretest 若 要 从 运 行 在 Azure 以 外 的 客 户 端 ( 比 如 你 自 己 的 笔 记 本 电 脑 ) 连 接 至 该 MySQL 服 务 器, 还 需 要 对 防 火 墙 进 行 配 置, 将 客 户 端 公 网 IP 地 址 或 IP 地 址 段 加 入 到 白 名 单 中 为 此 请 执 行 下 列 操 作 : 1. 在 管 理 门 户 首 页, 左 侧 导 航 窗 格 中 选 择 MySQL Database on Azure 2. 点 击 要 配 置 的 服 务 器 实 例 对 应 的 名 称 3. 随 后 将 打 开 该 服 务 器 实 例 的 配 置 界 面, 点 击 页 面 上 方 的 配 置 选 项 卡 4. 在 允 许 的 ip 地 址 选 项 下, 可 添 加 特 定 IP 地 址 或 某 一 IP 地 址 段 为 了 便 于 后 续 管 理, 可 为 每 个 地 址 或 地 址 段 添 加 一 个 规 则 名 称
默 认 情 况 下, 当 前 订 户 在 Azure 上 运 行 的 其 他 服 务 ( 包 括 Azure 虚 拟 机 ) 可 以 直 接 访 问 该 订 户 创 建 的 MySQL 服 务 器, 无 需 再 手 动 添 加 IP 地 址 但 您 也 可 以 更 改 此 默 认 设 置, 在 允 许 的 服 务 中, 将 Azure 服 务 一 项 设 置 为 否 MySQL Database on Azure 支 持 两 种 备 份 形 式 : 按 需 备 份 和 每 日 定 时 备 份 您 可 以 选 中 MySQL 服 务 器, 点 击 配 置 进 行 每 日 备 份 时 间 的 设 置, 并 通 过 下 拉 菜 单 选 择 自 动 备 份 时 间 ( 此 处 为 当 前 浏 览 器 的 本 地 时 间 ) 设 置 完 上 述 选 项 后, 点 击 页 面 底 部 的 保 存 按 钮 至 此 MySQL 服 务 器 已 创 建 完 成 开 始 使 用 前, 还 需 要 在 服 务 器 中 创 建 所 需 的 MySQL 数 据 库 在 一 个 MySQL 服 务 器 中, 用 户 可 创 建 多 个 数 据 库, 数 量 没 有 限 制, 但 是 多 个 数 据 库 会 共 享 服 务 器 的 资 源 若 要 创 建 MySQL 数 据 库, 可 选 中 一 个 MySQL 服 务 器, 在 配 置 界 面 上 点 击 数 据 库 选 项 卡, 随 后 点 击 页 面 底 部 中 央 的 添 加 按 钮
随 后 会 看 到 下 图 所 示 的 界 面, 在 这 里 我 们 需 要 输 入 数 据 库 的 相 关 参 数 : 设 置 完 成 后 点 击 右 下 角 的 对 勾 按 钮 随 后 点 击 仪 表 板 选 项 卡, 页 面 右 侧 列 出 了 服 务 器 的 地 址 信 息, 请 记 录 服 务 器 地 址 信 息, 以 及 创 建 服 务 器 时 提 供 的 用 户 名 ( 比 如 在 我 们 这 个 例 子 里 是 MySQLtest123%azuretest ) 与 相 应 的 密 码 其 他 需 要 访 问 该 数 据 库 的 应 用 程 序, 或 本 地 运 行 的 数 据 库 管 理 工 具 需 要 提 供 这 些 信 息 才 能 连 接 到 我 们 所 创 建 的 MySQL 数 据 库
建 立 高 效 安 全 的 连 接 MySQL 服 务 器 和 数 据 库 均 已 创 建 完 毕, 随 后 该 考 虑 用 何 种 方 式 连 接 到 数 据 库 以 SSL 方 式 安 全 地 访 问 MySQL 数 据 库 在 创 建 MySQL Database on Azure 实 例 时, 强 烈 建 议 您 将 数 据 库 实 例 与 需 要 访 问 数 据 库 的 应 用 放 在 同 一 Azure 区 域, 在 这 种 情 况 下 不 需 要 用 SSL 加 密 也 可 保 障 数 据 传 输 的 安 全 性, 同 时 数 据 传 输 的 延 迟 也 最 小 如 果 您 的 应 用 跟 MySQL 数 据 库 不 在 同 一 Azure 区 域, 强 烈 建 议 您 通 过 SSL 加 密 访 问 数 据 库, 来 保 障 数 据 访 问 的 安 全 性 本 节 将 介 绍 如 何 下 载 并 配 置 SSL 证 书 目 前 MySQL Database on Azure 支 持 利 用 公 钥 在 服 务 器 端 进 行 加 密 验 证 以 MySQL.exe 命 令 行 工 具 为 例, 您 可 以 通 过 下 列 步 骤 配 置 MySQL 数 据 库 的 SSL 加 密 访 问 : 1. 将 SSL 连 接 的 公 钥 证 书 下 载 至 本 地 : https://www.wosign.com/root/ws_ca1_new.crt ( 注 意 : 目 前 该 证 书 支 持 MySQL.exe 5.5.44 和 5.6.25 及 其 后 续 版 本 ) 2. 对 于 MySQL.exe, 创 建 连 接 时 需 使 用 --ssl-ca 参 数 来 指 定 公 钥 证 书 例 如 :
mysql.exe --ssl-ca=ws_ca1_new.crt -h mysqlservices-sha.chinacloudapp.cn - u MySQLtest123%azuretest p 3. 连 接 成 功 后, 运 行 status 命 令 若 SSL 的 值 为 Cipher in use, 则 意 味 着 成 功 创 建 了 SSL 连 接 ; 若 SSL 的 值 为 Not in use, 则 代 表 当 前 连 接 并 未 SSL 加 密 如 果 使 用 MySQL Workbench, 则 可 通 过 下 列 步 骤 进 行 验 证 1. 启 动 MySQL Workbench, 点 击 左 上 角 加 号 图 标 打 开 下 图 所 示 的 Setup New Connection 窗 口 在 这 里 输 入 服 务 器 名 用 户 名 密 码 等 信 息
2. 打 开 SSL 选 项 卡, 点 击 SSL CA File 右 侧 对 应 的 按 钮, 选 择 要 使 用 的 SSL 证 书 3. 请 注 意, 在 上 图 的 Use SSL 下 拉 菜 单 中, 请 选 择 If Available, 否 则 可 能 会 造 成 配 置 失 败 在 Test Connection 过 程 中 可 能 会 提 示 SSL not enabled, 这 是 一 个 假 预 警 可 以 忽 略, 点 击 确 认 后 连 接 数 据 库, 此 时 通 信 过 程 已 加 密 4. 点 击 该 对 话 框 底 部 的 Test Connection 按 钮 对 连 接 进 行 测 试
此 外 您 还 可 以 使 用 函 数 对 SSL 进 行 配 置 以 Python 为 例, 下 图 是 一 段 示 例 代 码 : 如 何 高 效 地 连 接 至 MySQL 数 据 库 数 据 库 连 接 是 一 种 有 限 的 资 源, 通 过 合 理 利 用 连 接 池 访 问 MySQL Database on Azure, 可 获 得 更 优 化 的 性 能 本 节 将 介 绍 如 何 使 用 连 接 池 或 长 连 接 高 效 地 访 问 MySQL Database on Azure 通 过 连 接 池 访 问 数 据 库 ( 推 荐 ) 由 于 在 发 起 连 接 时,MySQL Database on Azure 会 做 大 量 验 证 工 作, 导 致 发 起 连 接 的 开 销 相 对 于 本 地 数 据 库 更 大 对 于 数 据 库 连 接 的 管 理 能 够 显 著 影 响 到 整 个 应 用 程 序 的 性 能 为 了 使 您 的 程 序 能 够 达 到 性 能 最 优, 目 标 是 降 低 发 起 连 接 的 次 数, 把 发 起 连 接 的 时 间 不 放 在 关 键 的 代 码 路 径 上 强 烈 建 议 您 使 用 数 据 库 连 接 池 (Connection pool) 或 长 连 接 (Persistent connection) 方 式 连 接 MySQL Database on Azure 数 据 库 连 接 池 负 责 建 立, 管 理 和 分 配 数 据 库 连 接
当 应 用 程 序 申 请 一 个 数 据 库 连 接 时, 它 优 先 分 配 一 个 现 有 的 空 闲 的 数 据 库 连 接, 而 不 是 重 新 建 立 一 个 当 数 据 库 连 接 使 用 完 毕 后, 它 会 回 收 该 连 接 以 备 再 次 使 用, 而 不 是 直 接 关 闭 该 连 接 通 过 长 连 接 访 问 数 据 库 ( 推 荐 ) PHP 中 建 议 您 使 用 长 连 接, 长 连 接 的 概 念 与 连 接 池 的 概 念 类 似 需 要 注 意 的 是 PHP 目 前 有 三 种 驱 动, 除 Mysqli 外, 其 他 两 种 驱 动 均 支 持 长 连 接 将 短 连 接 修 改 至 长 连 接 对 于 代 码 的 改 动 不 大, 但 是 对 于 性 能 的 提 高 在 很 多 典 型 应 用 场 景 中 将 起 到 很 大 的 作 用 通 过 等 待 重 试 机 制 短 连 接 访 问 数 据 库 基 于 资 源 的 有 效 性, 强 烈 推 荐 您 使 用 连 接 池 或 是 长 连 接 访 问 数 据 库 但 如 果 需 要 使 用 短 连 接, 在 并 发 连 接 数 接 近 上 限, 连 接 出 现 失 败 的 情 况 下, 建 议 您 尝 试 多 次 连 接, 可 以 根 据 实 际 情 况 设 定 合 适 的 等 待 时 间 策 略, 比 如 初 次 等 待 时 间 可 以 较 短, 如 果 还 不 成 功 可 以 等 待 更 长 时 间 后 再 试 MySQL 服 务 器 的 管 理 和 监 控 在 正 常 运 行 的 过 程 中, 我 们 可 以 通 过 Azure 管 理 门 户 对 MySQL 服 务 器 和 数 据 库 的 性 能 指 标 和 运 行 状 况 进 行 监 控 仪 表 板 仪 表 板 页 面 如 下 图 所 示 这 里 列 出 了 MySQL 服 务 器 的 相 关 信 息
取 决 于 创 建 服 务 器 时 所 选 的 服 务 层 版 本, 每 个 服 务 器 有 一 定 的 容 量 可 用 于 存 储 数 据, 例 如 本 例 中 这 台 服 务 器 的 存 储 量 为 102400MB(100GB) 在 每 台 服 务 器 上 可 以 创 建 无 限 数 量 个 数 据 库, 但 所 有 数 据 库 需 要 共 享 这 些 容 量 仪 表 板 页 面 右 侧 列 出 了 此 服 务 器 的 状 态 地 址 端 口, 以 及 版 本 和 数 据 库 数 量 等 汇 总 信 息 数 据 库 数 据 库 页 面 如 下 图 所 示, 这 里 列 出 了 此 服 务 器 上 目 前 已 经 创 建 的 数 据 库 通 过 页 面 底 部 的 按 钮, 我 们 可 以 创 建 更 多 数 据 库, 删 除 现 有 数 据 库, 或 更 改 现 有 数 据 库 的 配 置 例 如 在 选 中 一 个 现 有 数 据 库, 并 点 击 底 部 的 编 辑 按 钮 后, 即 可 修 改 可 访 问 该 数 据 库 的 用 户 帐 户 的 访 问 权 限 帐 户 帐 户 页 面 列 出 了 该 服 务 器 上 已 经 创 建 的 帐 户, 以 及 每 个 帐 户 可 访 问 的 具 体 数 据 库
通 过 页 面 底 部 的 按 钮, 可 以 添 加 新 帐 户, 编 辑 现 有 帐 户 的 选 项, 重 置 现 有 帐 户 的 密 码, 或 删 除 不 再 需 要 的 账 户 监 视 器 监 视 器 页 面 如 下 图 所 示, 这 里 列 出 了 针 对 当 前 服 务 器 的 不 同 性 能 指 标 进 行 监 控 的 结 果 图 表 区 域 的 右 上 角, 可 以 调 整 图 表 内 容 的 时 间 跨 度 和 度 量 方 式, 并 可 手 工 进 行 刷 新 点 击 页 面 底 部 的 添 加 度 量 值 按 钮 后, 可 以 选 择 更 多 性 能 指 标 进 行 监 控 该 页 面 可 添 加 多 种 性 能 指 标, 每 种 指 标 的 具 体 含 义 请 参 阅 这 里 : http://www.windowsazure.cn/documentation/articles/mysql-database-operationmonitoring-metrics 配 置 配 置 页 面 的 大 部 分 内 容 在 上 文 中 已 经 进 行 了 详 细 介 绍, 这 里 不 再 累 述 但 是 配 置 页 面 最 底 部 的 mysql server 设 置 选 项 需 要 注 意 :
这 些 选 项 可 供 您 对 MySQL 服 务 器 的 部 分 参 数 进 行 自 定 义 设 置 对 于 每 个 选 项, 点 击 右 侧 对 应 的 值, 输 入 修 改 后 的 值, 并 点 击 页 面 底 部 的 保 存 按 钮 即 可 下 表 中 列 出 了 目 前 可 配 置 的 参 数, 默 认 值, 以 及 可 选 范 围 参 数 默 认 值 范 围 Event_scheduler OFF ON OFF DISABLED div_precision_increment 4 [0-30] group_concat_max_len 1024 [4-16777216] Innodb_adaptive_hash_index ON ON OFF innodb_lock_wait_timeout 50 [1-3600] interactive_timeout 1800 [10-1800] log_queries_not_using_indexes OFF [ON OFF] Log_bin_trust_function_creators OFF [ON OFF FALSE] max_allowed_packet 1048576 [1024-16777216] server-id 随 机 数 值 [1000-4294967295] sql_mode Empty ALLOW_INVALID_DATES ANSI_QUOTES ERROR_FOR_DIVISION_BY_ZERO HIGH_NOT_PRECEDENCE IGNORE_SPACE NO_AUTO_CREATE_USER NO_AUTO_VALUE_ON_ZERO NO_BACKSLASH_ESCAPES
NO_DIR_IN_CREATE NO_ENGINE_SUBSTITUTION NO_FIELD_OPTIONS NO_KEY_OPTIONS NO_TABLE_OPTIONS NO_UNSIGNED_SUBTRACTION NO_ZERO_DATE NO_ZERO_IN_DATE ONLY_FULL_GROUP_BY PAD_CHAR_TO_FULL_LENGTH PIPES_AS_CONCAT REAL_AS_FLOAT STRICT_ALL_TABLES STRICT_TRANS_TABLES 上 述 值 的 含 义 和 用 途 请 参 阅 : http://dev.mysql.com/doc/refman/5.5/en/sqlmode.html wait_timeout 1800 [60-1800] 关 于 这 些 MySQL 参 数 的 详 细 介 绍 和 用 途, 请 参 阅 MySQL 官 方 网 站 上 的 说 明 : http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html 注 意 : 若 无 特 别 理 由, 不 建 议 修 改 这 些 配 置, 以 免 影 响 服 务 的 正 常 使 用 规 模 目 前 MySQL Database on Azure 提 供 了 MS1 MS2 MS3 MS4 这 四 种 不 同 版 本 的 服 务, 在 新 建 MySQL 服 务 器 时, 用 户 需 要 选 择 一 个 版 本 每 个 版 本 的 性 能 指 标 ( 主 要 是 处 理 速 率 和 并 发 连 接 数 ) 及 价 格 各 不 相 同 如 果 有 必 要, 可 以 在 创 建 好 服 务 器 之 后, 更 改 服 务 所 用 的 版 本 为 此 只 需 要 在 规 模 页 面 中 点 击 选 择 要 使 用 的 版 本 ( 可 升 级 或 降 级 版 本 ), 并 等 待 大 约 三 分 钟, 新 的 版 本 就 会 生 效
备 份 默 认 情 况 下,MySQL Database on Azure 会 自 动 对 服 务 器 进 行 备 份, 每 天 备 份 一 次, 备 份 内 容 保 存 30 天 备 份 页 面 显 示 了 服 务 器 的 所 有 历 史 备 份 点 击 选 中 一 个 后, 可 通 过 页 面 底 部 的 还 原 按 钮 对 服 务 器 进 行 还 原 或 者 可 以 在 需 要 时 点 击 底 部 的 立 即 备 份 按 钮, 立 刻 对 服 务 器 创 建 备 份 迁 移 数 据 库 到 Azure 如 果 您 需 要 把 数 据 库 从 别 的 地 方 迁 移 到 MySQL Database on Azure, 当 数 据 量 大 的 情 况 下 建 议 您 通 过 以 下 步 骤 完 成 迁 移 第 一 步, 把 数 据 从 现 在 的 数 据 库 导 出 到 一 个 文 件 ( 比 如 用 mysqldump 工 具 )
第 二 步, 将 数 据 库 导 出 文 件 传 输 到 您 在 Azure 上 的 某 台 VM 上 您 可 以 用 您 熟 悉 的 数 据 传 输 工 具 ( 比 如 FTP 等 ), 您 也 可 以 用 AzCopy 这 一 工 具 ( 用 AzCopy 需 要 先 把 文 件 传 输 到 一 个 存 储 blob, 再 传 至 VM) 第 三 步, 按 照 前 面 的 步 骤 新 在 MySQL Database on Azure 上 建 一 个 新 的 数 据 库 第 四 步, 把 数 据 从 您 的 Azure VM 上 导 入 到 新 建 的 MySQL 数 据 库 中 这 样 可 以 降 低 连 接 中 途 断 开 而 导 致 迁 移 失 败 的 可 能 性 配 置 数 据 同 步 复 制 到 MySQL Database on Azure MySQL Database on Azure 支 持 异 地 数 据 库 同 步 的 功 能, 用 户 可 以 将 Azure 以 外 的 MySQL 实 例 设 为 主 库, 把 运 行 在 MySQL on Azure 上 的 实 例 设 为 从 库, 通 过 标 准 的 MySQL 主 从 数 据 同 步 的 方 式 同 步 数 据 到 Azure 以 更 好 地 满 足 企 业 各 种 混 合 云 场 景 的 需 求 同 时 数 据 库 同 步 的 功 能 也 可 以 帮 助 您 实 现 更 完 善 更 灵 活 的 云 端 迁 移 体 验 具 体 配 置 方 法 请 参 阅 http://www.windowsazure.cn/documentation/articles/mysqldatabase-data-replication 服 务 限 制 与 通 过 用 户 自 行 创 建 虚 拟 机 并 运 行 的 MySQL 环 境 相 比,MySQL Database on Azure 服 务 由 于 是 托 管 形 式 的 数 据 库 服 务 所 以 存 在 一 些 限 制 : 由 于 MySQL Database on Azure 应 用 了 定 制 的 用 户 账 号 认 证 插 件, 用 户 账 号 的 创 建 只 能 通 过 管 理 门 户 或 Powershell/API 完 成, 用 户 不 能 直 接 通 过 SQL 命 令 行 创 建 新 的 数 据 库 用 户 账 号 只 能 通 过 管 理 门 户 或 Powershell/API 创 建 数 据 库, 不 支 持 SQL 命 令 行 直 接 创 建 数 据 库 用 户 没 有 shutdown 权 限, 不 支 持 shutdown MySQL 数 据 库 服 务 器 用 户 没 有 Super 权 限, 例 如 用 户 将 无 法 更 改 任 意 一 个 全 局 变 量 用 户 没 有 File 权 限 MySQL built-in system table 不 支 持 写 权 限, 同 时 以 下 table 不 支 持 读 写 权 限 : columns_priv,db,general_log,host,ndb_binlog_index,plugin,procs_priv, servers,slow_log,tables_priv,user,proxies_priv
目 前 不 支 持 MyISAM 存 储 引 擎 建 议 把 MyISAM 改 成 InnoDB 本 阶 段 常 见 问 题 问 题 1: 如 果 我 的 数 据 库 大 小 超 过 100GB 怎 么 扩 容? 解 答 : 我 们 提 供 100GB 免 费 数 据 库 容 量, 超 出 此 部 分, 我 们 会 自 动 按 照 存 储 定 价 来 收 费 详 情 可 以 联 系 世 纪 互 联 客 服 询 价 问 题 1:MySQL 服 务 器 上 可 运 行 的 数 据 库 数 量 是 否 有 限 制? 解 答 : 在 一 个 MySQL 服 务 器 中, 用 户 可 创 建 多 个 数 据 库, 数 量 上 没 有 限 制, 但 是 多 个 数 据 库 会 共 享 服 务 器 资 源, 如 数 据 库 数 量 较 多, 性 能 需 求 较 高, 建 议 创 建 多 个 MySQL 服 务 器 问 题 2: 连 接 MySQL Database on Azure 服 务 失 败 的 最 常 见 原 因 会 是 什 么? 解 答 : 请 确 认 是 否 把 当 前 IP 地 址 加 入 白 名 单, 添 加 过 程 可 在 管 理 门 户 上 选 择 配 置 进 行 当 前 IP 的 添 加 另 外, 也 请 确 认 您 在 客 户 端 输 入 的 用 户 名 是 以 实 例 名 % 用 户 名 的 格 式 如 上 述 两 者 均 确 认, 仍 出 现 数 据 库 无 法 连 接 的 情 况, 请 联 系 世 纪 互 联 寻 求 技 术 支 持 问 题 3: 世 纪 互 联 运 营 的 MySQL Database on Azure 服 务 是 如 何 保 障 可 用 性 和 安 全 性 的? 解 答 :MySQL Database on Azure 基 于 Azure 的 地 域 冗 余 存 储 来 提 供 数 据 的 高 可 靠 性, 在 同 一 个 区 域 中 自 动 同 步 复 制 3 个 本 地 副 本, 同 时 在 超 过 一 千 公 里 外 的 区 域 通 过 异 步 的 方 式 复 制 3 个 异 地 副 本, 保 证 数 据 的 高 度 可 靠 在 数 据 访 问 的 安 全 性 方 面, 该 服 务 提 供 防 火 墙 功 能, 同 时 支 持 通 过 SSL 链 接 访 问 数 据 库 MySQL Database on Azure 提 供 99.9% 的 运 行 时 间 服 务 级 别 协 议 (SLA), 保 证 服 务 的 高 可 用 和 用 户 业 务 的 连 续 性 同 时 基 于 地 域 冗 余 的 数 据 存 储 支 持 异 地 灾 备 恢 复, 使 得 用 户 即 使 面 对 极 端 情 况 仍 然 可 以 获 得 妥 善 保 护 问 题 4:MySQL Database on Azure 是 否 支 持 异 地 数 据 库 同 步 以 及 创 建 混 合 云? 解 答 :MySQL Database on Azure 支 持 异 地 数 据 库 同 步 的 功 能, 用 户 可 将 Azure 以 外 的 MySQL 实 例 设 为 主 库, 把 运 行 在 MySQL Database on Azure 上 的 实 例 设 为 从 库, 通 过 标 准 的 MySQL 主 从 数 据 同 步 方 式 将 数 据 同 步 到 Azure, 以 更 好 地 满 足 企 业 各 种 混 合 云 场
景 的 需 求 同 时 数 据 库 同 步 的 功 能 也 可 以 帮 助 您 实 现 更 完 善 更 灵 活 的 云 端 迁 移 体 验 问 题 5: 为 什 么 MySQL Database on Azure 不 支 持 MYISAM 格 式 的 数 据 库? 解 答 : 产 品 研 发 团 队 在 多 次 研 究 和 分 析 以 后, 做 出 了 不 支 持 的 决 定 考 虑 的 因 素 主 要 有 以 下 几 点 : MYISAM 对 数 据 完 整 性 的 保 护 存 在 缺 陷, 而 这 些 缺 陷 会 导 致 数 据 库 数 据 的 损 坏 甚 至 丢 失 并 且 这 些 缺 陷 由 于 很 多 是 设 计 的 问 题, 无 法 在 不 破 坏 兼 容 性 的 前 提 下 修 复 MYISAM 对 于 I/O 的 操 作 对 于 Azure 的 存 储 不 是 最 优 化 的 方 案, 导 致 MYISAM 的 性 能 相 对 于 InnoDB 优 势 不 大 MYISAM 在 出 现 数 据 损 害 情 况 下, 需 要 很 多 手 工 修 复, 无 法 适 应 PaaS 服 务 的 运 营 方 式 MYISAM 向 InnoDB 的 迁 移 代 价 不 大, 大 多 数 应 用 仅 需 要 改 动 建 表 的 代 码 MySQL 的 发 展 也 是 在 向 InnoDB 转 移, 在 最 新 的 5.7 版 中,MySQL 可 以 完 全 不 是 MyISAM, 系 统 的 数 据 库 也 被 转 移 到 了 InnoDB 自 我 小 测 试 通 过 阅 读 本 章, 相 信 您 已 经 对 MySQL Database on Azure 有 了 一 定 的 了 解, 下 面 就 通 过 几 个 自 测 题 来 验 证 并 巩 固 您 的 阅 读 成 果 吧 问 题 1: 通 过 MySQL Database on Azure 建 立 的 一 个 MySQL 服 务 器 最 多 可 包 含 几 个 数 据 库? A 5 个 B 10 个 C 无 限 量 D 15 个 问 题 2:MySQL Database on Azure 目 前 支 持 哪 些 版 本 的 MySQL? A 5.5 B 5.6 C 5.7 D 5.1 问 题 3: 目 前 MySQL Database on Azure 可 通 过 以 下 哪 几 种 方 式 创 建 用 户 账 号? A MySQL.exe B MySQL Workbench C Powershell 脚 本 D Azure 管 理 门 户 问 题 4: 避 免 MySQL Database on Azure 并 发 连 接 数 不 够 用 情 况 的 最 佳 做 法 是 什 么? A 使 用 短 连 接 B 使 用 连 接 池 C 使 用 长 连 接 D 升 级 为 更 高 级 别 的 服 务
问 题 5: 目 前 MySQL Database on Azure 的 数 据 备 份 可 以 保 存 多 久? A 30 天 B 60 天 C 存 储 容 量 充 裕 可 永 久 保 存 D 90 天 正 确 答 案 : 问 题 1(C) 问 题 2(A B) 问 题 3(D) 问 题 4(B C) 问 题 5(A) 参 考 资 源 MySQL 5.5 用 户 权 限 : https://dev.mysql.com/doc/refman/5.5/en/privilegesprovided.html Apache common DBCP:http://commons.apache.org/proper/commons-dbcp/ 利 用 PDO 建 立 长 连 接 :http://php.net/manual/en/pdo.connections.php 利 用 MySQL 引 擎 建 立 长 连 接 : http://php.net/manual/en/function.mysqlpconnect.php