mysql复制
一主一从
座双机热备
1.log-bin必须是打开的
进入
mysql查看 状态,如果时候ON表示是开启,OFF表示关闭
show variables like '%log_bin%';
2.设置log-bin为ON,注意mysql主机或备机都有两个my.cnf需要设置
路径1:/opt/rh/mysql55/root/etc/my.cnf 安装路径,优先级高于/etc/my.cnf
路径2:/etc/my.cnf
主机master
设置my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=23 //[必须]
服务器唯一ID,默认是1,一般取IP最后一段
重启服务
service mysql55-mysqld restart
设置备机访问的权限
-- REPLICATION SLAVE这是全局复制,该权限(REPLICATION SLAVE)是一个全局权限
--涉及到时通过外部zxlh账户进行数据的修改,给zxlh账户实时备份的权限
GRANT REPLICATION SLAVE ON *.* TO zxlh@'10.50.28.24' IDENTIFIED BY 'zxlh';
无法定位问题时,查看var/log/mysql55-mysqld.log,错误日志在这个文件
查看主机是否设置完成
show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 |
备机
设置my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=24 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
备机
change master to master_host='10.50.28.23',master_user='zxlh',master_password='zxlh',master_log_file='mysql_bin.000011',master_log_pos=11137524
change master to master_host='10.50.28.23',master_user='zxlh',master_password='zxlh',master_log_file='mysql_bin.000025',master_log_pos=27133152;
change master to master_host='10.50.30.35',master_user='zxlh',master_password='zxlh223456',master_log_file='mysql-bin.000023',master_log_pos=499382400;
start slave; //启动从服务器复制功能
查看备机状态
show slave status\G
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成
show master status\G
清除2015-05-22之前的日志
purge master logs before '2015-05-22 00:00:00'
查看日志
show master logs
PS:从库中最好不要加会更改数据的触发器,会导致重复更改数据