本文主要参考了 Azure 官方文档:https://learn.microsoft.com/zh-cn/azure/mysql/flexible-server/quickstart-create-server-portal
先决条件
- 一个有效的 Azure 国际版订阅,不是国内特供的世纪互联版。
- 还在免费期内。(要不然你就得自己花钱了)
创建
入口:https://portal.azure.com/#create/Microsoft.MySQLFlexibleServer
定价:https://azure.microsoft.com/zh-cn/pricing/details/postgresql/flexible-server/
可用区域及可用特性列表:https://learn.microsoft.com/zh-cn/azure/mysql/flexible-server/overview#azure-regions
基本
- 强烈建议新建资源组,不要放到已有的资源组里,以防不小心被删掉。
- 起个名字。
- 区域选择与你业务(比如说我的 WordPress 网站)服务器最接近的地域。Azure 机房延时:https://www.azurespeed.com/Azure/Latency
- 点击进入服务器配置页面。
- 选择 B1ms 才是免费,不要选错成 B1s。
- 存储选 32GB。免费备份的空间和主存储空间大小一致,也即是 32G。
- IOPS 选择预配最低的 396。
- 关闭存储自动增长。
- 存储天数连同你的数据库大小决定了会使用多少备份空间。Azure 自动每天备份一次,比如你的数据库总大小是 1 G,保留10 天,那么估计最大占用 10G 备份空间。因为我的 WordPress 数据库不大(目前才几个 MB),所以直接拉满。如果你的业务数据库很大,拉太长时间会导致总备份大小超出免费备份空间,从而收费,因此务必仔细评估。
- 异地冗余(GRS)开启后,会额外复制一份备份到另一个大区(东亚大区会复制到东南亚大区),以防主数据中心遭到天灾,因此备份会占用双倍的备份空间。同样因为我的 WordPress 数据库不大所以直接开。GRS 的区域对见:https://learn.microsoft.com/zh-cn/azure/reliability/cross-region-replication-azure#azure-cross-region-replication-pairings-for-all-geographies
- 保存。
- 可用性区域是指:比如一个东亚大区(香港),这个大区下属三个子区,每个子区相隔一定距离,这里的每个子区就叫做可用性区域(每个可用性区域是一个独立的数据中心或者包含几个数据中心,而不是一个数据中心划分出三个区域),微软这样设置是为了防止一把火把整个大区烧掉,但又不至于相隔太远导致业务之间的延迟太高。如果你在使用 Azure 的 VM,且 VM 选择了可用性区域(比如东亚大区的 Zone 1 子区),那么数据库也选择东亚大区的 Zone 1 子区就可以确保在同一个机房里做到最低的延迟;而如果不选就是随机分配,就有可能分到同一大区的不同机房(微软表示子区之间延迟在 2 毫秒内)。我这里选无首选项,因为免费帐户 VM 只能用动态 IP,而动态 IP 没法选可用性区域(下图),所以数据库选可用性区域也没有意义。
- 新建数据库的管理员账号密码。
- 下一步。
网络
添加防火墙规则,把业务服务器的公网IP 填进去(开始结束都是同一个)。本文不涉及更为安全的“专用访问(VNet 集成)”连接方式。
“添加当前客户端 IP 地址” 本意是把正在创建的本机添加进去,方便从你的个人电脑连接,但是国内绝大部分个人用户都在大号局域网内没有公网IP,而这个网页获得的公网IP是变动的。如果你有公网IP倒也可以添加。
至于“添加 0.0.0.0 - 255.255.255.255”,意味着所有人都能访问你的服务器。虽然这可以让没有公网IP或者动态公网IP的国内个人电脑访问,但是风险很高,非常不建议。
之后直接创建。部署大约需要 3-5 分钟,明显比开 VM 要久很多。
服务器参数设置
按照以下步骤修改服务器参数:
对于 WordPress 来说,需要修改以下参数:
- require_secure_transport - OFF 。WordPress 开启安全传输有点麻烦。
- sql_mode - 关掉
NO_ZERO_DATE
和NO_ZERO_IN_DATE
,这两个会导致 WordPress 导出的的数据表导不进去。
记得保存。
查看指标
使用一段时间后,可以在“指标”中查看数据。指标的各项含义见:https://learn.microsoft.com/zh-cn/azure/mysql/flexible-server/concepts-monitoring#list-of-metrics
使用 phpmyadmin 远程访问数据库
在控制端的电脑/服务器安装 phpmyadmin (记得添加 IP 到允许访问数据库服务器的列表中)。我这里使用宝塔面板安装。
然后 bash 搜索配置文件:
sudo find / -name config.inc.php
就会显示 config.inc.php
的路劲。在宝塔面板中打开,在 localhost
的记录下面添加:
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '<服务器名称>';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
之后打开 phpmyadmin 的时候就可以下拉选择远程服务器了。
Comments NOTHING