mysql主从复制实践
来源:互联网 发布:军犬网络舆情监控系统 编辑:程序博客网 时间:2024/05/16 12:24
读万卷书不如行万里路,只有亲身实践过你才知道书里的内容是否是真实的。
前提条件:
准备至少2台mysql服务器,ip各不相同,一台作为master库,另外的作为slave苦。
例如本人的环境:
ubuntu(master库):
ip:192.168.1.104
ubuntu-clone(slave库):
ip:192.168.1.104
2个ip为局域网,之间能互相ping通!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
配置mastar库:
1.SHOW MASTER STATUS 保证出现如下界面:
若没有出现,说明你没有开启log-bin,开启方式如下:
#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
2.创一个用户给slave库授权进行主从复制。
GRANT REPLICATION SLAVE ON *.* to 'fengslave'@'%' identified by '123456';FLUSH PRIVILEGES;
不上登录mysql的账户,这一点不要搞混淆了!
3.重启mysql服务
配置slave库:
同maste的主库一样,修改配置文件,但可以不相同:
#vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
设置主库账号,用root账号登录192.168.1.109:
1.stop slave
2.设置
->change master to -> master_host='192.168.1.104', -> master_user='fengslave', -> master_password='123456', -> master_log_file='mysql-bin.000002', -> master_log_pos=120;
3.start slave
4.最后在重启mysql服务。
若进入slave库,用root登录后,发现:
SLAVE_IO_RUNNING:YES
SLAVE_SQL_RUNNING:TES
都是yes则说明没有问题,此时则安装结束!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
可能出现的问题如下:
问题:安装时候发现SLAVE_IO_RUNNING:NO
在从库中执行:show slave status\G中:
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
原因是:mysql5.6的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy data文件夹后server_uuid是相同的,show variables like '%server_uuid%';
解决方法:
找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启db即可
参考:http://blog.csdn.net/cug_jiang126com/article/details/46846031
原因是:mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续
解决办法:跳过指定数量的事务:
mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务
mysql>slave start
参考:http://blog.csdn.net/seteor/article/details/17264633
思考:在现实出现任何一点一点小的问题都可能会导致巨大的损失,如何及时的发现mysql主从复制有问题了?
参考:编写一shell脚本,用nagios监控slave的两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。
思考:主从复制的思路在一定程度上面保证了数据的备份以及在高并发的时候对IO性能瓶颈的提升,在程序上的体现就是从主库中进行删除,修改,添加操作,从库只进行查询的操作。程序上可以使用多数据源来回切换的方式进行实现,有没有更简便的方法呢?
- mysql主从复制实践
- Mysql主从复制实践
- mysql主从复制实践
- MySQL主从复制实践
- 实践mysql主从复制
- Mysql主从复制实践手册
- Linux MySQL主从复制(Replication)实践配置
- mysql主从复制【实践后可用】
- MySQL 经典架构之 主从复制 实践
- MySQL主从复制(Master-Slave)实践
- Docker中Mysql主从复制实践总结
- MongoDB主从复制实践
- MySQL 主从复制理解与实践(WINDOWS环境)
- MySQL主主从复制+TomCat高可用实践案例
- docker mysql 主从复制实践(亲测可行)
- 以Docker方式实现MySql 主从复制(实践篇)
- 【mysql 主从复制】掌握MySQL主从复制
- mysql 主从复制 主从配置
- 利用Sqoop从oracle同步数据到HDFS出现The Network Adapter could not establish the connection的解决方法
- 【PAT】【Advanced Level】1050. String Subtraction (20)
- MongoDB主从复制,副本集, Sharding
- 解决fatal: No remote repository specified. Please, specify either a URL...
- 欢迎使用CSDN-markdown编辑器
- mysql主从复制实践
- Day43-Struts02
- git manual
- Java线程优先级
- Apache Tomcat版本各版本
- jvm系列(二):JVM内存结构
- 【HDU】4857--逃生(拓扑)
- EasyDSS流媒体解决方案之Grunt的使用简介
- js语句switch的一个小案例