mysql主从同步设置
1、两台机器安装同版本的mysql,或是slave的版本低于master的
2、主服务器设置
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'slavedb'@'172.16.8.2' IDENTIFIED BY 'password';
#给与从服务器用户slavedb的同步权限
mysql>Flush privileges;
#刷新权限,使设置生效
配置node1 的/etc/my.cnf配置文件
修改配置文件中如下内容,如果没有添加上去:
log-bin=mysql-bin
启动二进制日志系统
binlog-do-db=test
二进制需要同步的数据库名,如需要同步多个,重复添加该行
server-id = 1
本机数据库ID 标示为主,该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值
log-bin=/var/log/mysql/slavelog
#设定生成log文件名,这里的路径没有mysql目录要手动创建并给于它mysql用户的权限。
binlog-ignore-db=mysql
# 避免同步mysql用户配置,以免不必要的麻烦
停止数据库,并将本地需要同步数据库打包拷贝到从数据库上
service mysqld stop
#停止mysql的服务
tar -cvf /root/db.tar /usr/local/mysql/test
#备份主服务器需要同步的数据库
scp /root/db.tar root@172.16.8.2:/usr/local/mysql
#通过远程拷贝到从服务器上,拷贝的时候需要输入从服务器的root密码。
Service mysqld start #启动主服务器mysql服务
3、同步slave 从服务器配置
配置slave服务器/etc/my.cnf文件
将以下配置启用:
server-id = 2
从服务器ID号,不要和主ID相同 ,
如果设置多个从服务器,每个从服务器必须有一个唯一的server-id值,必须与主服务器的以及其它从服务器的不相同。可以认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务器实例。
master-host = 172.16.8.1
指定主服务器IP地址
master-user = slavedb
指定在主服务器上可以进行同步的用户名
master-password = password
密码
master-port = 3306
同步所用的端口
master-connect-retry=60
断点重新连接时间
replicate-ignore-db=mysql
屏蔽对mysql库的同步,以免有麻烦
replicate-do-db=test
同步数据库名称,如需要同步多个,重复添加该行
装载主服务器数据库:
cd /var/lib/mysql
#进入数据库库文件主目录
tar -xvf db.tar
#解压缩
service mysqld start
4、配置检查
在从服务器上执行
mysql>show slave status\G;
当下面的参数
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步
同步之前如果怀疑主从数据不同步可以采取:服务器上命行同步方法
主服务器上执行
mysql> show master status; #显示(不同主机结果不同)
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| slavelog.000018 | 3467 |db1 | mysql |
+------------------+----------+-------------------+------------------+
记录File 和Position的值
在从服务器执行MySQL命令下:
mysql> slave stop; #先停止slave服务
mysql> CHANGE MASTER TO master_host=’172.16.8.1’,master_user=’slavedb’, master_password=’password’,MASTER_LOG_FILE='slavelog.000018',MASTER_LOG_POS=3467 ;
# MASTER_LOG_FILE='slavelog.000018', 主服务器File的值
# MASTER_LOG_POS=3467 ; 主服务器Position的值
mysql>slave start; #启动从服务器同步服务
参考文章1:http://hi.baidu.com/wudenggao/blog/item/8bf32be1810704ca2d2e2162.html
参考文章2:http://colderboy.blog.51cto.com/485582/107836
转载于:https://blog.51cto.com/devops/666982