一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情。 假设A服务器和B服务器,均部署mysql数据并进行实时同步
1、创建同步用户
A服务器 在主/备服务器上创建同步用户: //登录mysql //在A服务器上增加一个B服务器可以登录的帐号,使用mysql终端输入:(注意tongbu是用于同步的帐号,hisense是tongbu的密码,实际中可按需自行设置) mysql -u root -p123456 mysql>flush privileges; mysql>GRANT ALL PRIVILEGES ON . TO 'tongbu'@'10.16.221.77' IDENTIFIED BY 'hisense'; mysql>flush privileges;
B服务器: //登录mysql //在B服务器上增加一个A服务器可以登录的帐号,使用mysql终端输入:(注意tongbu是用于同步的帐号,hisense是tongbu的密码,实际中可按需自行设置) mysql -u root -p123456 mysql>flush privileges; mysql>GRANT ALL PRIVILEGES ON . TO 'tongbu'@'10.16.221.78' IDENTIFIED BY 'hisense'; mysql>flush privileges;
2、修改配置文件 /etc/my.conf
2.1 A服务器的配置 /etc/my.conf
#同步配置 skip-name-resolve #必须与其他服务器不同,且必须为1到232–1之间的一个正整数值 server-id=1 #二进制文件 log-bin=mysql-bin #要同步的数据库 binlog-do-db=tongbu //自己测试用的数据库 这个库要存在 测试成功后要改为真正项目使用的库 slave-skip-errors=1032,1062
2.2 B服务器的配置 /etc/my.conf
#同步配置 skip-name-resolve #必须与其他服务器不同,且必须为1到232–1之间的一个正整数值 server-id=2 #二进制文件 log-bin=mysql-bin #要同步的数据库 binlog-do-db=tongbu //自己测试用的数据库 这个库要存在 测试成功后要改为真正项目使用的库 slave-skip-errors=1032,1062
2.3、重启验证生效
修改完之后重启mysql
启动停止命令
service mysqld stop //停止
service mysqld start //启动
//查看B服务器mysql的mysql库中user表
MySQL>use mysql;
MySQL>select user,host from user;
//此时出现了配置好的登陆账号
3、指定主/备服务器同步信息
在A服务器上查看当前二进制日志名和偏移量值: MySQL> show master status; //记下 File下的值 (mysql-bin.000001) Position的值(120)
在B服务器上指定更新点(根据上面样例修改MASTER_LOG_FILE值为样例结果中File的值;修改MASTER_LOG_POS值为样例结果中Position的值) MySQL> stop slave; MySQL> change master to master_host='10.18.224.79', master_port=3306, master_user='tongbu',master_password='hisense',master_log_file='mysql-bin.000001',master_log_pos=120; MySQL> start slave;
在A服务器上指定更新点(根据上面样例修改MASTER_LOG_FILE值为样例结果中File的值;修改MASTER_LOG_POS值为样例结果中Position的值) MySQL> stop slave; MySQL> change master to master_host='10.18.224.81', master_port=3306, master_user='tongbu',master_password='hisense',master_log_file='mysql-bin.000001',master_log_pos=120; MySQL> start slave; 重启A、B服务器的mysql服务
4、检查数据库同步状态
查看A、B数据库同步状态, 输入以下命令,会出来很多信息,但是主要看Slave_IO_Running与Slave_SQL_Running这两个字段都显示yes就行了 MySQL> show slave status\G;
查看A、B服务器的同步线程状态,输入以下命令 MySQL > show processlist\G
5、测试
分别在两个服务器的库中创建新增表 表记录增删改测试看是否会同步