标签:mysql主从
主IP:192.168.3.12
从IP:192.168.3.11
1、配置好mysql
配置my.cnf
server-id = 1 #唯一标识
log-bin=mysql-bin
replicate-do-db=test #需要备份的数据库名
replicate-ignore-db=mysql #忽略的数据库
log-slave-updates #这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #是跳过错误,继续执行复制操作
2、主库分配权限
grant replication slave on *.* to ‘rep‘@‘%‘ identified by ‘123‘;
3、主库锁表
导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性
flush tables with read lock;
4、导出主库sql
mysqldump -uroot -p -S /tmp/mysql_3306.sock -R -q --triggers=false --default-character-set=utf8 --events --ignore-table=mysql.events --all-databases >mysql3306.sql
5、复制主库sql到从库数据
主库操作:nc -l 666 < mysql3306.sql
从库操作:nc 192.168.3.12 666 > mysql3306.sql
导入:mysql -uroot -p -S /tmp/mysql_3306.sock < mysql3306.sql
6、动态改变主从同步
进主服务器查看状态
show master status;
其中File表示日志文件记录,Position表示日志文件的位置,这个也是数据库执行复制操作的必须标识
通过在主服务器找到position 、log值
在从服务器执行如下命令:
slave stop;
CHANGE MASTER TO MASTER_HOST=‘192.168.3.12‘,MASTER_USER=‘rep‘,MASTER_PASSWORD=‘123abc‘,MASTER_LOG_FILE=‘mysql-bin-fookii.000007‘,MASTER_LOG_POS=787;
slave start;
show slave status\G;
7、返回主库,恢复写操作
恢复写操作
unlock tables;
8、查看从连接状态
show slave status\G;
发现
Slave_IO_Running: Yes
Slave_IO_Running: Yes
说明配置成功
常用的命令
主库:
查看主库二进制文件及位置
show master status;
show master logs;
从库:
//启动复制线程
slave start;
//停止复制线程
slave stop;
//显示复制线程的状态
show slave status\G;
常问题:
mysql主从不同步忽略错误后,继续同步
用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
登录到从库执行如下命令:
slave stop;
set global sql_slave_skip_counter=1;
slave start;
show slave status\G;
mysql快速解决"is marked as crashed and should be repaired"故障
myisamchk -c -r pe_owner_notice_list.MYI
本文出自 “冰山下的火种” 博客,转载请与作者联系!
标签:mysql主从
原文地址:http://zhouzun.blog.51cto.com/345141/1596580