Mysql主从热备

要进行主从热备首先给从机建立一个所有权限的账户:GRANT ALL PRIVILEGES ON *.* TO weipan_bak@'10.100.100.14' IDENTIFIED BY 'Qybak123';

在主库的配置文件my.ini增加如下配置:

server-id=200
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
log_bin_trust_function_creators=TRUE
expire-logs-days=1
max_binlog_size=600M

注意:server-id每台机器不要重复,expire-logs-days日志清理周期,max_binlog_size日志文件最大大小。

然后锁库:FLUSH TABLES WITH READ LOCK;

备份主库的所有数据下来,然后查看当前的日志位置SHOW MASTER STATUS;记录下日志的文件和位置;

然后解锁:UNLOCK TABLES;

主库的配置就完成了


从机上面的配置文件修改就简单多了:

server-id=210
replicate-do-db=weipandb
log_slave_updates=1

修改完重启mysql,把前面备份的数据库还原到从机上面,然后执行以下命令启动热备:

stop slave;
CHANGE MASTER TO MASTER_HOST='10.100.100.11',MASTER_USER='weipan_bak',MASTER_PORT = 33066,MASTER_PASSWORD='Qybak123',master_log_file='mysql-bin.000002',master_log_pos=106;
SET GLOBAL sql_slave_skip_counter =1;
start slave;
show slave status;
master_log_file和master_log_pos就是之前记录下来的。

配置完成后可以用show slave status;命令查看是否主从连接成功

查看这两项是否为YES,yes为正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


常用命令:
//设置心跳时间   心跳即同步的频率  单位秒
stop slave;
change master to master_heartbeat_period = 10;
start slave;


//网络延迟多久开始重连
set global slave_net_timeout = 25; 

//重连次数
CHANGE MASTER TO MASTER_RETRY_COUNT = 0;  //0代表不限次数

--------------------------------
//显示编码
show variables where Variable_name like 'collation%';

  

原文地址:https://www.cnblogs.com/CarlBlogs/p/7405342.html