1、修改主库配置文件(my.cnf),在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 1
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名
binlog-do-db = mybase
修改好配置文件,重启mysql服务
systemctl restart mysqld
创建从库同步数据的账号,打开mysql的终端执行如下命令:
grant replication slave on *.* to '账号'@'192.168.197.136' identified by '密码';
flush privileges;
查看主库的状态:
在mysql的终端执行:show master status\G;
返回的信息为:
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 2380
Binlog_Do_DB: jgyw
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
2、修改从库配置文件(my.cnf),在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 2
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
# 指定需要复制的数据库名
replicate-do-db = mybase(与主库一致)
修改之后记得重启MySQL服务;
进入从库mysql终端:
# 设置主服务器ip,同步账号密码,同步位置
change master to master_host='主库IP',master_user='用户名',master_password='密码',master_log_file='mysql-bin.000002(注意要和主库的一致)',master_log_pos=2380;
# 开启同步功能
start slave;
查看从库的状态
show slave status\G;
如果从库状态显示:SLAVE_IO_Running:Yes SLAVE_SQL_Running:Yes ,则搭建成功!
取消主从
mysql> slave stop;
mysql>reset slave;
mysql>change master to master_user=' ', master_host=' ', master_password=' ';
mysql>reset slave;
mysql>change master to master_user=' ', master_host=' ', master_password=' ';
主从出现错误时,在从库终端执行:
mysql>slave stop;
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>slave start;