mysql主备库数据同步搭建
2016-02-29 10:43
567 查看
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目录文件没有读写权限
4000
使用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,搞定
服务器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目录文件没有读写权限
4000
使用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,搞定
相关文章推荐
- mysql 之索引
- Ubuntu 14.04 MySQL 安装配置 For Cloudera Manages 5
- mysql-删除日志文件命令详解
- Mysql中的MVCC
- mysql安装
- mysql语句:批量更新多条记录的不同值
- MySQL 调优/优化的 100 个建议
- mysql免安装版本
- MySQL优化技巧之四(数据库设计中的一些技巧)
- mysql
- keepalive配置mysql自动故障转移
- mybatis连接mysql数据库插入中文乱码
- 2种方法解决mysql主从不同步
- 浅谈mysql事务
- mysql中日期函数、时间函数
- mysql中IN和EXITS效率
- MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UP
- 修改mysql root 密码
- 【mysql】忘记密码、权限丢失、mysql启动报错:1067
- windows搭建nodejs+express+mysql返回json数据