mysql主备库数据同步搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AlerXiaoTian/article/details/50763821

mysql版本5.5

服务器IP1      192.168.1.1   master 主库

服务器IP2      192.168.1.2   slave备库


1.修改主库 master   /etc/my.cnf    

对于部分mysql可能没有这个文件,我从官方下的就没有,找到安装目录下,任意*.cnf拷贝到/etc目录下即可

# vi /etc/my.cnf

[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
server-id=200  #使用ip端末尾为就好了  比如192.168.1.1 id就是1
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index

注意修改必须放在[mysqld]标签下,保存后重启mysql服务

# service  mysql restart


2.修改备库

slave /etc/my.cnf
#datadir=/var/lib/mysql

#socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
server-id=132
log-bin=mysql-bin
replicate-do-db=test   #test为要同步数据库名字,多个就加多条
log-slave-updates=1
重启mysql服务
# service  mysql restart

3.登录Slave mysql,然后执行下面命令:

mysql> stop slave;
mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456';
mysql> start slave;
mysql> show slave status\G;

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

4.同步前,我是手动把两边数据同步一遍,可用mysqldump 导入 然后远程copy 再导入,就是在主备库开始同步之前,手动先将两边数据同步一下,空库可略过。。

5.对于 Slave_IO_Running 显示Connection ,检查网络、用户名密码、和mysql执行权限,可以在备库服务器上远程mysql 首先排除网,用户密码和账号的远程登录权限问题。
一开始我是出现 Slave_IO_Running 显示Connection,自作聪明 my.cnf 用户写了root,这就导致了root可能对mysql目录文件没有读写权限
使用chown+了权限后,修改了root,mysql,和自己新建的用户,始终显示conn,于是在备库服务器上用mysql -h 链接主库,发现用户没有加远程登录权限,切回主库添加权限后,last_error出现日志不一致问题,网上说删除bin-index,00001等等,并没有卵用

最后看到一篇
http://niutuku.com/tech/Mysql/237830.shtml

service_id 问题  进mysql查了一下,还真是不一致,我在排错过程中修改了server-id
登录mysql 
show variables like 'server_id'; 
分别看一下主备库的id与my.cnf设置的是否一致,如果不一致
set global server_id=2; #此处的数值和my.cnf里设置的一样就行 

再看备库
mysql> stop slave;
mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456';
mysql> start slave;
mysql> show slave status\G;

本以为事情到此结束了,回去发现一个数据库打不开,网上查了一下是数据库文件权限问题
chown -R mysql:mysql /var/lib/mysql/gps/

重启mysql,搞定











展开阅读全文

没有更多推荐了,返回首页