docker mysql集群怎么搭建
导读:要搭建Docker MySQL集群,可以按照以下步骤进行操作: 安装Docker:在每个节点上安装Docker引擎。 创建Docker网络:创建一个Docker网络,用于连接MySQL容器。 docker network creat...
要搭建Docker MySQL集群,可以按照以下步骤进行操作:
-
安装Docker:在每个节点上安装Docker引擎。
-
创建Docker网络:创建一个Docker网络,用于连接MySQL容器。
docker network create mysql-cluster -
创建MySQL实例:在每个节点上创建MySQL容器实例。
docker run -d -p 3306:3306 --name mysql-node1 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql docker run -d -p 3307:3306 --name mysql-node2 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql docker run -d -p 3308:3306 --name mysql-node3 --net mysql-cluster -e MYSQL_ROOT_PASSWORD=password mysql这将在每个节点上创建一个MySQL容器,并将其连接到mysql-cluster网络。每个容器都使用不同的端口号(3306、3307、3308)。
-
配置MySQL集群:进入每个MySQL容器并修改配置文件以启用集群功能。
docker exec -it mysql-node1 bash vim /etc/mysql/mysql.conf.d/mysqld.cnf修改配置文件中的以下参数:
[mysqld] server-id=1 log-bin=mysql-bin log_slave_updates=1 enforce_gtid_consistency=1 gtid_mode=ON binlog_format=ROW然后重启容器:
docker restart mysql-node1在其他节点上执行相同的步骤,但将server-id设置为不同的值(2、3)。
-
创建集群用户:在其中一个节点上创建集群用户并授予相应的权限。
docker exec -it mysql-node1 bash mysql -uroot -ppassword进入MySQL命令行后,执行以下命令:
CREATE USER 'cluster'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'cluster'@'%'; FLUSH PRIVILEGES;注意将'password'替换为实际的密码。
-
配置主从复制:在每个节点上进行主从复制配置。
docker exec -it mysql-node1 bash mysql -uroot -ppassword进入MySQL命令行后,执行以下命令:
SHOW MASTER STATUS;记下File和Position的值。
在其他节点上执行以下命令:
docker exec -it mysql-node2 bash mysql -uroot -ppassword进入MySQL命令行后,执行以下命令(将File和Position替换为上一步中的值):
CHANGE MASTER TO MASTER_HOST='mysql-node1', MASTER_USER='cluster', MASTER_PASSWORD='password', MASTER_LOG_FILE='File', MASTER_LOG_POS=Position; START SLAVE;重复以上步骤,将其他节点配置为从节点。
-
验证集群:在任意一个节点上进行验证。
docker exec -it mysql-node1 bash mysql -uroot -ppassword进入MySQL命令行后,执行以下命令:
SHOW STATUS LIKE 'wsrep_cluster_size';如果集群大小大于等于3,则表示集群已成功搭建。
以上步骤将帮助您搭建Docker MySQL集群。注意替换命令中的密码和其他参数以适应您的环境。此外,还可以根据需要进行其他配置和调整。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: docker mysql集群怎么搭建
本文地址: https://pptw.com/jishu/569509.html
