1、准备工作:
腾讯云的centos
两台服务器:(mysql版本尽量保持一致,主服务器的版本不能高于从服务器)
主服务器:ip1;
从服务器:ip2;
待同步的数据库:mash;
同步主从数据库数据,保持主从数据一致!
需要注意的是!!!
线上的项目导出数据的时候,保证主库上锁,等slave导入、slave start之后在解锁;
slave重启的时候也一样,重启之前,主库上锁,重启完毕,解锁;
主库表锁!
mysql>flush tables with read lock;
主库解锁!
mysql>unlock tables;
tips:1.用linux命令行工具 键入命令: mysql -uroot -ppwd即可连接本机数据库
2、配置主服务器:
2.1、修改mysql配置文件my.conf
找到my.conf目录 vi my.conf
Server-id = 1 #这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错;
log-bin = mysql-bin #二进制日志文件,此项为必填项,否则不能同步数据;
binlog-do-db = mash #需要同步的数据库,如果需要同步多个数据库则继续添加此项。
# binlog-do-db = mash1
# binlog-do-db = mash2
binlog-ignore-db = mysql 不需要同步的数据库;
保存退出!重启MySql使更改生效!
2.2添加一个同步用户mytest并赋值权限(用于从服务器slave使用)!
create user mytest
grant replication slave on *.* to ‘mytest’@'ip2' identified by '123456'
查看状态
记住file和position
3、配置从服务器:
3.1、修改mysql配置文件my.conf
server-id=2 #默认是1改成2,注意主从id不能一样
log-bin=mysql-bin #这行本身有
replicate-do-db=mash #需要同步的数据库
replicate-ignore-db=mysql #不同步系统数据库
保存退出!重启MySql使更改生效!
3.2修改slave参数:
stop slave;
change master to master_host='ip1',master_user='mytest',master_password='123456',master_log_file='mysql-bin.000009' ,master_log_pos=120
# 注:master_log_file=上面提到的二进制文件;master_log_pos=上面提到的pos
start slave;
校验:
至此主从配置完毕!
4.若是slave status 里面有报错,手动解决之后,执行如下命令即可!
mysql> stop slave;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;
mysql> start slave;