下面是Linux下指定MySQL数据库服务器主从同步的配置实例的完整攻略:
概述
主从同步是MySQL中非常重要的一项功能,它可以提供高可用性和数据可靠性,使得数据的备份和恢复更加方便和快捷。
在Linux环境下,实现主从同步需要进行以下几个步骤:
- 在主服务器上配置MySQL服务器,开启binlog功能。
- 在主服务器上创建一个用于同步的用户,授权该用户对数据库进行读取操作。
- 在从服务器上配置MySQL服务器,进行备份数据导入,并开启从服务器的复制功能。
- 在从服务器上配置同步账号密码信息,连接主服务器并进行同步。
下面将会详细介绍每个步骤的具体实现。
配置主服务器
登录到主服务器上,打开MySQL的配置文件/etc/my.cnf
,找到mysqld节点下的配置信息。
1. 开启binlog功能
在mysqld节点下加入以下两行配置来开启binlog功能:
log-bin=mysql-bin
binlog-format=MIXED
其中,log-bin
参数设置二进制日志的路径及其前缀,binlog-format
参数设置binlog的格式,包括ROW、STATEMENT、MIXED等。
2. 创建用于同步的用户
使用以下命令创建一个用户名为repluser
的用于同步的用户,并授权该用户可以访问数据库的所有表:
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'password';
其中,GRANT
命令用于授权用户的权限,REPLICATION SLAVE
表示授予访问主从同步所需的权限。
重启MySQL服务生效。
配置从服务器
登录到从服务器上,打开MySQL的配置文件/etc/my.cnf
,找到mysqld节点下的配置信息。
1. 备份并导入数据
在从服务器上备份主服务器中需要同步的数据,并导入到从服务器中。
可以使用以下命令备份数据并传输:
mysqldump --master-data -uroot -p dbname > /backup/dbname.sql
scp /backup/dbname.sql user@slave_host:/dir
这里的--master-data
选项将在导出备份文件时,把变量MASTER_LOG_FILE
和MASTER_LOG_POS
写入到备份文件中,方便从服务器连接主服务器并开始进行同步。
2. 开启从服务器的复制功能
在目标数据库上运行以下命令,以开启从服务器的复制功能:
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='repluser',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
其中,MASTER_HOST
参数指定主服务器的主机名或IP地址,MASTER_USER
和MASTER_PASSWORD
参数指定用于主从同步的用户名和密码,MASTER_LOG_FILE
和MASTER_LOG_POS
则分别指定主服务器当前的binlog文件和位置。
3. 开始同步
输入以下命令,开始同步从服务器上创建的备份数据:
START SLAVE;
输入以下命令,查看从服务器上复制状态:
SHOW SLAVE STATUS\G
如果输出的结果中的Slave_IO_Running
和Slave_SQL_Running
均为YES
,则表示主从同步已经配置完成。
示例
示例1:主从服务器都在同一网络中
假设主服务器的IP地址为192.168.0.10
,从服务器的IP地址为192.168.0.20
,MySQL的安装目录为/usr/local/mysql
。
1. 配置主服务器
打开主服务器的配置文件/etc/my.cnf
,在mysqld节点下加入以下两行配置:
log-bin=mysql-bin
binlog-format=MIXED
保存配置文件,重启MySQL服务生效。
2. 创建用于同步的用户
在主服务器上使用以下命令创建一个用户名为repluser
的用于同步的用户,并授权该用户可以访问数据库的所有表:
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'mypassword';
3. 备份并导入数据
在主服务器上备份需要同步的数据,并导入到从服务器中:
mysqldump -uroot -p dbname > /backup/dbname.sql
scp /backup/dbname.sql user@192.168.0.20:/dir
4. 配置从服务器
打开从服务器的配置文件/etc/my.cnf
,在mysqld节点下加入以下两行配置:
log-bin=mysql-bin
binlog-format=MIXED
保存配置文件,重启MySQL服务生效。
5. 开启从服务器的复制功能
在从数据库上运行以下命令,以开启从服务器的复制功能:
CHANGE MASTER TO
MASTER_HOST='192.168.0.10',
MASTER_USER='repluser',
MASTER_PASSWORD='mypassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=98;
6. 开始同步
在从服务器上输入以下命令,开始同步备份数据:
START SLAVE;
输入以下命令,可以查看复制的状态:
SHOW SLAVE STATUS\G
示例2:主从服务器在不同网络中
假设主服务器拥有公网IP地址为203.0.113.10
,从服务器的IP地址为192.168.0.20
,MySQL的安装目录为/usr/local/mysql
。
1. 配置主服务器
打开主服务器的配置文件/etc/my.cnf
,在mysqld节点下加入以下两行配置:
log-bin=mysql-bin
binlog-format=MIXED
保存配置文件,重启MySQL服务生效。
2. 创建用于同步的用户
在主服务器上使用以下命令创建一个用户名为repluser
的用于同步的用户,并授权该用户可以访问数据库的所有表:
GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%' IDENTIFIED BY 'mypassword';
3. 备份并导入数据
在主服务器上备份需要同步的数据,并导入到从服务器中:
mysqldump -uroot -p dbname > /backup/dbname.sql
scp /backup/dbname.sql user@192.168.0.20:/dir
4. 配置从服务器
打开从服务器的配置文件/etc/my.cnf
,在mysqld节点下加入以下两行配置:
log-bin=mysql-bin
binlog-format=MIXED
保存配置文件,重启MySQL服务生效。
5. 开启从服务器的复制功能
在从服务器上运行以下命令,以开启从服务器的复制功能:
CHANGE MASTER TO
MASTER_HOST='203.0.113.10',
MASTER_USER='repluser',
MASTER_PASSWORD='mypassword',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=98;
6. 开始同步
在从服务器上输入以下命令,开始同步备份数据:
START SLAVE;
输入以下命令,可以查看复制的状态:
SHOW SLAVE STATUS\G
总结
本文详细介绍了在Linux环境下如何配置MySQL数据库服务器的主从同步,包含了主服务器和从服务器的配置,以及两个不同网络情境下的实际操作。希望对读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下指定mysql数据库服务器主从同步的配置实例 - Python技术站