1、主从原理
在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。
2、环境准备
3、配置主库
编辑/etc/my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 1# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format=ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image=minimal
# 指定需要复制的数据库名为db_fengkong
binlog-do-db = db_fengkong
重启mysql服务
service mysqld restart
在终端创建从库同步数据的账号(一般不用root账户同步数据)
GRANT replication SLAVE ON *.* TO 'cstb' @'192.168.232.111' IDENTIFIED BY '12345';
FLUSH PRIVILEGES;
在终端查看主库的状态:
SHOW MASTER STATUS;
返回的信息为:
4、配置从库
编辑/etc/my.cnf文件,在[mysqld]加入下面的内容:
# 服务的唯一编号
server-id = 2# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format=ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image=minimal
# 指定需要复制的数据库名为db_fengkong
replicate-do-db = db_fengkong
重启mysql服务
service mysqld restart
执行同步命令,设置主服务器ip,同步账号密码,同步位置,master_log_file,master_log_pos为主库的返回信息
CHANGE MASTER TO master_host = '192.168.232.110',
master_user = 'cstb',
master_password = '12345',
master_log_file = 'mysql-bin.000003',
master_log_pos = 2380;
开启同步功能
START SLAVE;
查看从库的状态:
SHOW SLAVE STATUS;
返回信息为:
注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。如果不成功,请执行如下语句:
STOP SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000003',MASTER_LOG_POS = 403;
START SLAVE;
再次查看从库的状态,知道显示正常
SHOW SLAVE STATUS;
5、测试
在主库上创建 db_fengkong 数据库,在从库中就会自动创建 db_fengkong 数据库,主从数据库搭建成功!!!