MySQL主从复制

1.修改数据库配置文件/etc/my.cnf(mysql配置文件位置)设置server-id及log-bin(所有服务器的server-id不能重复)

MySQL主从复制_第1张图片

2.修改完重启mysql(service mysql restart)

3.在主服务器创建用于同步的账户(登录主数据库运行GRANT REPLICATION SLAVE ON *.* TO '用户名'@'从服务器内网ip地址' IDENTIFIED BY '密码';),如果有多个可以创建多个(设置固定ip服务器安全性高),怕麻烦可以直接用root账号开全网连接权限。

4.锁主数据库准备复制数据(登录主数据库运行flush tables with read lock;)

确认锁表成功(登录主数据库多次运行show master status \G查看File与Position是否变化,不变化应该就ok了)

MySQL主从复制_第2张图片

5.

6.备份主数据库所有数据(mysql外执行mysqldump -uroot -p -A >备份文件地址)(例:mysqldump

-uroot -p -A > /all.sql)

7.将数据复制至从服务器准备初始化同步所有数据(mysql外执行scp备份文件地址从服务器用户名@从服务器内网ip:备份文件地址)(例:scp all.sql [email protected]:/all.sql)

8.停止从数据库主从同步(登陆从服务器mysql执行stop slave;)

9.设置从数据库主从同步配置(登陆从服务器mysql执行change master to master_host='主服务器内网ip、',master_user='主服务器mysql用于同步用户名',master_password='主服务器mysql用于同步用户密码',master_log_file='主服务器的File值(运行show

master status \G)',master_log_pos=Position主服务器的值(运行show master

status \G);)(例:change master to

master_host='172.31.9.229',master_user='root',master_password='123456789',master_log_file='mysql-bin.000023',master_log_pos=622127100;)

10.开启从数据库的同步(登陆从服务器mysql执行start slave;)

11.查看从数据库的同步状态(登陆从服务器mysql执行show slave status \G)确认这些数据无误则基本完成主从同步了。

MySQL主从复制_第3张图片

12.解锁主数据库准备所有数据同步(登陆主服务器mysql执行UNLOCK TABLES;)

13.检测主从是否ok(可以在主数据库插入或者删除数据进行判别,也可在主数据库运行show master status \G及在从数据库运行sho slave status \G,如果业务本身在跑,数据本身在变则主mysql的Position及从mysql的Read_Master_Log_Pos值都在变化)

14.踩到其他坑请自行百度,最好保证主从服务器的mysql版本一致性。

你可能感兴趣的:(MySQL主从复制)