1.
选择台湾云主机与网络规划
- 说明:优先选用台湾可用区(例如台北)以降低延迟。
- 步骤:在控制台选择实例类型(至少2vCPU、4GB内存起步),设置系统盘(SSD 100GB)。
- 网络与安全:启用私有子网(VPC),分配固定弹性IP用于对外管理;安全组只开放 TCP/22(管理)与 TCP/3306(仅限内网或跳板主机),并启用防火墙日志与DDoS防护。
2.
系统准备与基础环境
- 说明:以 Ubuntu 20.04 为例。
- 步骤:ssh 登录后执行:sudo apt update && sudo apt upgrade -y;设置时区:sudo timedatectl set-timezone Asia/Taipei。
- 用户与安全:创建运维用户 sudo adduser deploy && usermod -aG sudo deploy,禁用 root 直接登录并配置 SSH 公钥登录。
3.
安装 MySQL(单节点快速上手)
- 说明:使用官方 MySQL 8 或 MariaDB 10.x。以下示例为 MySQL 8:
- 步骤:sudo apt install mysql-server -y;启动并检查:sudo systemctl enable --now mysql && sudo systemctl status mysql。
- 初始化安全:sudo mysql_secure_installation,设置 root 密码、移除匿名用户、禁止远程 root、删除测试数据库。
4.
MySQL 基本配置与性能参数
- 说明:编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 调整核心参数。
- 建议配置:bind-address = 0.0.0.0(仅在私网内部可见时),innodb_buffer_pool_size ≈ 60%-70% 内存,max_connections 依据并发调整,slow_query_log=ON 并设置 long_query_time=1。
- 重启生效:sudo systemctl restart mysql;验证 SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
5.
配置主从复制(GTID)实操步骤
- 说明:适用于读写分离与在线扩展。以主节点和从节点为例。
- 主节点步骤:在 my.cnf 中设置 server-id=1, log_bin=binlog, enforce_gtid_consistency=ON, gtid_mode=ON, binlog_format=ROW;重启并创建复制用户:CREATE USER 'repl'@'%' IDENTIFIED BY '密码'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; SHOW MASTER STATUS; 记录 GTID。
- 从节点步骤:在从节点设置 server-id=2 并配置相同 GTID 参数,使用 CHANGE MASTER TO MASTER_HOST='主IP', MASTER_USER='repl', MASTER_PASSWORD='密码', MASTER_AUTO_POSITION=1; START SLAVE; 检查 SHOW SLAVE STATUS\G。
6.
构建 Galera 三节点同步集群(高可用方案)
- 说明:Galera/Percona XtraDB/MariaDB Galera 提供同步多主。建议至少3台节点在台湾不同可用区。
- 快速步骤:在三台机器上安装 Percona XtraDB Cluster 或 MariaDB Galera,编辑 my.cnf 添加 wsrep_on=ON、wsrep_cluster_address="gcomm://IP1,IP2,IP3"、wsrep_node_address="本机IP"、wsrep_cluster_name="galera_cluster"、binlog_format=row、innodb_flush_log_at_trx_commit=2;初次启动一个节点用 bootstrap,然后依次启动其他节点;验证 SHOW STATUS LIKE 'wsrep_cluster_size'; 应为3。
7.
备份与恢复实操
- 说明:生产环境请使用物理备份与增量。
- 逻辑备份:mysqldump -u root -p --all-databases > all.sql(适合小库)。
- 物理冷备与热备:Percona XtraBackup 实例:xtrabackup --backup --target-dir=/data/backup;恢复按官方文档恢复步骤执行。并定期在另一个可用区做快照与备份脚本(cron)和上传至对象存储。
8.
监控、报警与运维建议
- 监控项:CPU、内存、磁盘 I/O、MySQL QPS、慢查询、复制延迟。
- 工具:Prometheus + Grafana,或云商内建监控(开启 MySQL 指标采集);配置复制延迟报警、磁盘使用报警、慢查询阈值报警。
- 日常运维:定期执行 OPTIMIZE TABLE、检查慢查询并建索引、调整参数并在测试环境回归。
9.
安全与合规注意事项
- 加密与访问:启用传输层 TLS(配置 ssl_cert 与 ssl_key),限制管理 IP,使用 Vault 管理密码。
- 日志与审计:开启慢查询、general_log 在受控环境,启用审计插件记录重要操作;定期清理与归档。
- 合规:若处理个人资料,遵循当地隐私法规并与云商签署数据存放协议。
10.
问:在台湾云主机上部署 MySQL 最重要的网络设置是什么?
- 答:优先使用私有子网(VPC)与私网IP进行数据库间通信,仅在必要时通过跳板机或负载均衡对外暴露管理端口;安全组应只放行内网3306与SSH管理地址,避免直接将3306对公网开放。
11.
问:从单机 MySQL 迁移到 Galera 或 Vitess 的准备工作有哪些?
- 答:先评估读写模式与数据量;Galera 适合对一致性要求高的场景,需准备至少3节点并检查网络延迟;Vitess 适合大规模分片,需熟悉 VTGate/VTTables 部署、流量路由与运维复杂度;在迁移前做数据校验、备份与流量切换演练。
12.
问:如何在台湾云环境做低风险的变更与回滚?
- 答:使用蓝绿或灰度发布策略:先在副本或新集群上测试配置变更,通过负载均衡渐进切换流量;变更前做完整备份并保存快照,确认回滚文档与脚本,遇到问题即可恢复快照或切回旧节点。
来源:数据库部署建议在台湾云主机服务器上托管MySQL与分布式数据库的技巧