MySql主从同步

一、主从同步原理
master 记录数据更改操作
1.启用binlog日志
2.设置binlog日志格式
3.设置server_id
slave运行2个线程
1.slave_IO:复制master主机binlog 日志文件里的SQL到本机的relay-log文件里。
2.slave_SQL:执行本机relay-log文件里的SQL语句,重现master的数据操作。
二、基本构建思路
1.确保数据相同
—从库必须要有主库上的数据
2.配置主服务器
—启用binlog日志。授权用户、查看当前正使用的日志
3.配置从服务器
—设置server_id 指定主库信息
4.测试配置
—客户端连接主库写入数据,在从库上也能查询到

三、怎么配置?
1.主master库配置如下:
#vim /etc/my.cnf
[mysql]
… …
server_id=51 //51为本主机的IP 如192.168.4.51 为了方便使用,也可自己定义,方便即可。
log-bin=master51 //启用binlog日志
binlog_format=“mixed” //binlog日志格式
… …
保存退出
#systemctl restart mysqld //重启数据库,配置生效
#ls /var/lib/mysql/master51.*
2.用户授权:给从库添加连接时使用的用户名
mysql>grant replication slave on . to repluser@“192.168.4.52” identified by"123456";
mysql>show master status; //查看正在使用的binlog日志信息
3.从slave库配置如下:
指定server_id
#vim /etc/my.cnf
[mysql]
… …
server_id=52
… …
保存退出
#systemctl restart mysqld
测试主库授权用户
#mysql -h 192.168.4.51 -urepluser -p123456
mysql>quit;
管理员本机登录指定主库信息(自行登录)
mysql>show slave status;
mysql>change master to master_host=“192.168.4.51”,master_user=“repluser”,master_password=“123456”,master_log_file=“master51.000001”,master_log_pos=452;
mysql>start slave;
注:master_log_file和master_log_pos的值在主库上由show master status; (查看正在使用的binlog日志信息)取的。
查看配置:
mysql>show slave status\G;
… …
slave_IO_Runing:Yes
slave_SQL_Runing:Yes
… …
4. 客户端测试主从同步配置
… …

附加:

  1. 如何把从库还原成独立的数据库服务器?

rm -rf master.info relay-log.info host52-relay-bin.*

注:host52-relay-bin.* 为中继日志文件

systemctl restart mysqld

2.在主库上显示哪些线程正在运行
mysql>show processlist;
注:如果得到 “too many connections” 错误信息,并且想要了解正在发生的情况,本句非常有用,这个命令中最关键的就是state列,列出mysql的状态.

你可能感兴趣的:(MySql主从同步)