在前端开发中,数据库一般是不可或缺的一部分,而 MySQL 只是众多关系型数据库中比较流行的一种。但是,如何搭建一个高可用的 MySQL 集群呢?本文将介绍使用 Docker 快速搭建高可用 MySQL 集群的步骤及注意事项。
前提要求
- 机器配置较高,至少 8GB 内存。
- 安装了 Docker 和 Docker Compose。
- 使用了 Docker 官方提供的 MySQL 镜像。
步骤
1. 搭建一个 MySQL 单节点
使用 Docker 搭建 MySQL 单节点其实非常简单,只需要执行以下命令:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
其中,-d
表示后台运行,-e
表示设置环境变量,这里将 MySQL 的 root 用户密码设置为 123456。执行完这个命令之后,就可以用 docker ps
命令查看当前运行的容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ed0c1cb1189d mysql "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 3306/tcp mysql
2. 创建 MySQL 主从节点
为了避免单节点出现故障而影响应用的使用,我们需要建立一套主从节点的 MySQL 集群。具体步骤如下:
- 创建一个
docker-compose.yml
文件,内容如下:
-- -------------------- ---- ------- -------- --- --------- ------- ------ ------------ -------- ------------------- ---------------- ------------- ---------------------------------- --------------- -------- ------ ------------ -------------------- ------ ------ ------ ------------ -------- ------------------- --------------------------- --------------- --------------------- ------------- ---------------------------------- -------- ------ ------------ -------------------- ------ ------------------ ------ ------------------ ----
- 根据
docker-compose.yml
文件创建并启动容器:
docker-compose up -d
执行完这个命令之后,可以用 docker ps
命令查看当前运行的容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a39d0a6f5251 mysql "docker-entrypoint.s…" 10 seconds ago Up 8 seconds 3306/tcp mysql_slave bbcda1c0e023 mysql "docker-entrypoint.s…" 15 seconds ago Up 11 seconds 3306/tcp mysql_master
- 创建主从关系
首先,登陆到 slave 容器中的 MySQL 控制台中,并执行以下 SQL 语句:
change master to master_host='mysql_master',master_user='root',master_password='123456',master_port=3306,master_log_file='master.000001',master_log_pos=0; start slave; show slave status\G;
其中,change master to
命令用于创建主从关系,start slave
命令用于启动从服务器的复制。
注意事项
- 主从节点的 MySQL 版本需要保持一致。
- 在创建主从关系时,要确保主从节点的用户名和密码、主从服务器 IP 地址和端口、主节点的 log 文件名和位置是正确的。
- 在部署过程中,尽量保证容器的 IP 地址尽量稳定。可以在容器启动时确定一个静态 IP,避免容器重启后 IP 发生变化。
总结
本文介绍了如何使用 Docker 快速搭建高可用的 MySQL 集群,并提供了详细的步骤及注意事项。尽管在实际部署过程中应该会有一些细节需要注意,但通过这篇文章的学习,读者可以掌握利用 Docker 搭建 MySQL 集群的基本方法和技巧。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a908db48841e9894559971