mysql主从复制配置步骤

发布时间: 2023-11-21 11:23 阅读: 文章来源:1MUMB1383PS

在Linux的Docker中部署MySQL主从复制,可以按照以下步骤进行详细操作:

步骤1:安装Docker和Docker Compose 首先,确保在Linux服务器上已经安装了Docker和Docker Compose。可以按照Docker官方文档的指引进行安装。

步骤2:创建Docker Compose文件 在服务器上创建一个名为docker-compose.yml的文件,并使用文本编辑器打开该文件。

veversion: ‘3‘services:master:image: mysql:latestcontainer_name: mysql_masterrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: root_passwordMYSQL_DATABASE: database_nameports:- "3306:3306"volumes:- ./master:/var/lib/mysqlnetworks:- db_networkslave:image: mysql:latestcontainer_name: mysql_slaverestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: root_passwordports:- "3307:3306"volumes:- ./slave:/var/lib/mysqlnetworks:- db_networknetworks:db_network:

在上述示例中,我们定义了两个MySQL容器服务,一个用于主服务器(master),另一个用于从服务器(slave)。需要将root_password替换为实际的MySQL root密码,将database_name替换为实际的数据库名称。

步骤3:启动Docker容器 在包含docker-compose.yml文件的目录下,执行以下命令启动Docker容器:

docker-compose up -d

这将启动两个MySQL容器,并在后台运行。

步骤4:配置主服务器 连接到主服务器的容器,执行以下命令进行配置:

docker exec -it mysql_master bash

然后,在容器内部执行以下命令以编辑MySQL配置文件:

vi /etc/mysql/my.cnf

找到并修改以下配置项:

bind-address = 0.0.0.0log_bin = /var/log/mysql/mysql-bin.logserver-id = 1

保存并退出编辑器。

步骤5:重启主服务器容器 执行以下命令重启主服务器容器,使配置生效:

docker restart mysql_master

步骤6:配置从服务器 连接到从服务器的容器,执行以下命令进行配置:

docker exec -it mysql_slave bash

然后,在容器内部执行以下命令以编辑MySQL配置文件:

vi /etc/mysql/my.cnf

找到并修改以下配置项:

bind-address = 0.0.0.0server-id = 2

保存并退出编辑器。

步骤7:重启从服务器容器 执行以下命令重启从服务器容器,使配置生效:

docker restart mysql_slave

步骤8:配置主从关系 在从服务器容器中执行以下命令,配置从服务器连接到主服务器:

docker exec -it mysql_slave bashmysql -u root -pCHANGE MASTER TO MASTER_HOST=‘mysql_master‘, MASTER_USER=‘root‘, MASTER_PASSWORD=‘root_password‘, MASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=XXX;START SLAVE;

将root_password替换为实际的MySQL root密码,mysql-bin.000001替换为主服务器容器中实际的mysql-bin日志文件名,XXX替换为主服务器容器中实际的Position值。

步骤9:查看主从状态 在从服务器容器中执行以下命令,查看主从状态:

docker exec -it mysql_slave bashmysql -u root -pSHOW SLAVE STATUS\G

确保Slave_IO_Running和Slave_SQL_Running的值都为Yes,表示从服务器已成功连接到主服务器并开始复制。

完成以上步骤后,在Docker中成功部署了MySQL主从复制。主服务器上的更改将自动复制到从服务器上。

•••展开全文