我的笔记-Mysql同步相关

煮酒品茶:此为笔记,为以后配置方便所写。

流程如下:


煮酒品茶:图画的很烂,将就着看就行。

一、安装Mysql主从

煮酒品茶:安装就不写了

1)主Mysql配置如下

 1、配置文件配置

 

 
  
  1. vim /data/mysql/3306/my.cnf  

[mysqld] 分支下增加:


 
  
  1. server-id = 1 
  2. log-bin=mysql-bin 

2、授权访表:


 
  
  1. mysql> GRANT ALL PRIVILEGES ON *.* TO 'slave1'@'192.168.100.31' IDENTIFIED  
  2. BY 'password'


3、锁表记值刷表:

 
  
  1. mysql> FLUSH TABLES WITH READ LOCK;  
  2. mysql> show master status; 
  3. +------------------+----------+--------------+------------------+ 
  4. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  5. +------------------+----------+--------------+------------------+ 
  6. | mysql-bin.000001 |       98 |              |                  |  
  7. +------------------+----------+--------------+------------------+ 
  8. mysql>flush privileges

4、重启mysql

 

2)从mysql配置如下:

 

1、配置文件配置

 
  
  1. vim /data/mysql/3306/my.cnf  

[mysqld] 分支下增加:

 
  
  1. server-id = 2 
  2. master-host     =   192.168.100.30 
  3. master-user     =   slave1 
  4. master-password =   password 
  5. #master-port     =  3306 

2、停止同步:

 
  
  1. mysql> stop slave; 
 
  
  1. /data/mysql/3306/mysql start 

3、同步记录的值:


 
  
  1. mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.30',  
  2. MASTER_USER='slave1',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql- 
  3. bin.000001',MASTER_LOG_POS=98; 

4、启动同步:


 
  
  1. mysql> start slave;  

5、配置结束后测试

 

主数据库建库,从库查看。

 

煮酒品茶:

1、同步配置文件设置

 
Replicate-do-db=test 需同步的库(多库逗号分开)
Replicate-ignore-db=mysql 不需要同步的库(一般选定) 
Master系列:(主库帐号密码) 

 
  

  1. 例: 
  2. port=3306 端口 
  3. log-bin=mysql-bin 启用log-bin 
  4. server-id=2 服务id 
  5. binlog-ignore-db=mysql  不需要同步数据库binlog 
  6. replicate-ignore-db=mysql 不需要同步数据库 
  7. log-slave-updates 从日志更新 
  8. slave-skip-errors=all 跳过忽略所有错误 
  9. sync-binlog=1  
  10. #使每个事务的 binlog(sync_binlog =1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,MySQL服务器从binlog剪切回滚的 InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收 回滚的语句)。  
  11. auto-increment-increment=2 
  12. auto-increment-offset=2  
  13. #是用来设定数据库中自动增长的起点的,因为这两台服务器都设定了一次同一个自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突  

2、查看同步状态

 

mysql> show slave status\G  
正常:IO/SQL皆为Yes,Master值都为正确,不正确就要修改。
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

 

 
  
  1.  
  2. 常见错误 
  3. 如果Slave_IO_Runing:No 则说明权限分配有错误,重新分配权限。 
  4. 如果Slave_SQL_Runing:No 则可用下面方法解决: 
  5.  
  6. 解决办法一、 
  7. Slave_SQL_Running: No 
  8. 1.程序可能在slave上进行了写操作 
  9. 2.也可能是slave机器重起后,事务回滚造成的. 
  10. 一般是事务回滚造成的: 
  11. 解决办法: 
  12. mysql> slave stop; 
  13. mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1
  14. mysql> slave start; 
  15.   
  16. 解决办法二、 
  17. 首先停掉Slave服务:slave stop 
  18. 到主服务器上查看主机状态: 
  19. 记录File和Position对应的值 
  20. 进入master 
  21. mysql> show master status; 
  22. +----------------------+----------+--------------+------------------+ 
  23. | File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  24. +----------------------+----------+--------------+------------------+ 
  25. | localhost-bin.000094 | 33622483 |              |                  |  
  26. +----------------------+----------+--------------+------------------+ 
  27. 1 row in set (0.00 sec) 
  28.   
  29. 然后到slave服务器上执行手动同步: 
  30. mysql> change master to  
  31. > master_host='master_ip'
  32. > master_user='user',  
  33. > master_password='pwd',  
  34. > master_port=3306,  
  35. > master_log_file='localhost-bin.000094',  
  36. > master_log_pos=33622483 ; 
  37. 1 row in set (0.00 sec) 
  38. mysql> slave start; 

手动同步需要停止master的写操作!

转载(MySQL同步常见问题解答(FAQ): QAhttp://www.mysqlpub.com/thread-159-1-1.html 

备用:  http://cwtea.blog.51cto.com/4500217/956962

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值