MySql主从复制
1.主配置log-bin,指定文件的名字
在/etc/my.cnf 中添加一行 log-bin=kayak-mysql-log
2.主配置server-id,默认为1
在/etc/my.cnf中添加一行server-id=1 注意主从两台服务器的server-id不能相同
3.从配置server-id,与主不能重复
在/etc/my.cnf中添加一条server-id=2
4.主创建备份账户并授权 REPLICATION SLAVE
在主节点服务器上mysql中创建repl账户,密码为mysql_native_password模式(mysql最新版本8,密码认证方式最新方式):
create user ‘repl’@’%’ identified by ‘Kayak@123’;
grant all on . to’repl’@’%’;
alter user ‘repl’@’%’ identified with mysql_native_password by ‘Kayak@123!’;
grant replication slave a on . to’repl’@’%’;
5.主进行锁表 FLUSH TABLES WITH READ LOCK;
主mysql锁表防止此时从主插入数据造成position改变
6.主找到log-bin的位置 SHOW MASTER STATUS;
在mysql中执行show master status查看log-bin位置记住;
7.主备份数据 mysqldump --all-databases --master-data > dbdump.db
新开一个窗口执行以上语句导出主mysql的数据
8.从上导入数据 mysql < dbdump.db -uroot -p
将主mysql的dbdump.db文件复制到从服务器上,将dbdump文件导入到从mysql中
9.主进行解锁 UNLOCK TABLES;
解锁主mysql
10.在从上设置主的配置
mysql> CHANGE MASTER TO
-> MASTER_HOST=‘182.92.0.134’,
-> MASTER_USER=‘rep1’,
-> MASTER_PASSWORD=‘Kayak@123’,
-> MASTER_LOG_FILE=‘kayak-mysql-log.000001’,
-> MASTER_LOG_POS=567;
注意:最好更改默认的身份认证插件为:mysql_native_password,否则会报错,偶尔设置好了,也会挂,不知是不是bug。
更改方法:编辑my.cnf文件
vi /etc/my.cnf
在[mysqld]中添加下边的代码
default_authentication_plugin=mysql_native_password
11.start slave
开启从节点
12.show slave status\G;
查看从节点和主节点是否同步成功
13.如果主从没有同步成功
stop slave;
#表示跳过一步错误,后面的数字可变
set global sql_slave_skip_counter =1;
start slave;
之后再用mysql> show slave status\G 查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
ok,现在主从同步状态正常了。。。
本文介绍了MySQL主从复制的完整操作流程,包括配置log-bin、设置server-id、创建备份账户并授权、数据备份与导入、设置从服务器的主配置、开启复制及监控同步状态等关键步骤。
3187

被折叠的 条评论
为什么被折叠?



