联系邮箱:254200493@qq.com 登录 注册

MySQL主从库实现

2020-01-16 18:12:10

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>slave stop;
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>slave start;  


相关文章