cl_303303303 发表于 2018-10-3 08:00:30

我的笔记-Mysql同步相关

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


  煮酒品茶:图画的很烂,将就着看就行。
  一、安装Mysql主从
  煮酒品茶:安装就不写了
  
  
  (1)主Mysql配置如下
  1、配置文件配置
  


[*]vim /data/mysql/3306/my.cnf
  

   分支下增加:
  

  


[*]server-id = 1
[*]log-bin=mysql-bin
  

  2、授权访表:
  

  


[*]mysql> GRANT ALL PRIVILEGES ON *.* TO 'slave1'@'192.168.100.31' IDENTIFIED
[*]BY 'password';
  

  

  3、锁表记值刷表:
  


[*]mysql> FLUSH TABLES WITH READ LOCK;
[*]mysql> show master status;
[*]+------------------+----------+--------------+------------------+
[*]| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
[*]+------------------+----------+--------------+------------------+
[*]| mysql-bin.000001 |       98 |            |                  |
[*]+------------------+----------+--------------+------------------+
[*]mysql>flush privileges;
  

  4、重启mysql
  
  
  
  
  
  (2)从mysql配置如下:
  1、配置文件配置
  


[*]vim /data/mysql/3306/my.cnf
  

   分支下增加:
  

  


[*]server-id = 2
[*]master-host   =   192.168.100.30
[*]master-user   =   slave1
[*]master-password =   password
[*]#master-port   =3306
  

  2、停止同步:
  


[*]mysql> stop slave;
  


[*]/data/mysql/3306/mysql start
  

  
  3、同步记录的值:
  

  


[*]mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.30',
[*]MASTER_USER='slave1',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-
[*]bin.000001',MASTER_LOG_POS=98;
  

  4、启动同步:
  

  


[*]mysql> start slave;
  

  5、配置结束后测试
  主数据库建库,从库查看。
  
  煮酒品茶:序
  1、同步配置文件设置
  
Replicate-do-db=test 需同步的库(多库逗号分开)
  
Replicate-ignore-db=mysql 不需要同步的库(一般选定)
  
Master系列:(主库帐号密码)

  


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

  2、查看同步状态
  mysql> show slave status\G
  
正常:IO/SQL皆为Yes,Master值都为正确,不正确就要修改。
  
Slave_IO_Running: Yes
  
Slave_SQL_Running: Yes

  


[*]
[*]常见错误
[*]如果Slave_IO_Runing:No 则说明权限分配有错误,重新分配权限。
[*]如果Slave_SQL_Runing:No 则可用下面方法解决:
[*]
[*]解决办法一、
[*]Slave_SQL_Running: No
[*]1.程序可能在slave上进行了写操作
[*]2.也可能是slave机器重起后,事务回滚造成的.
[*]一般是事务回滚造成的:
[*]解决办法:
[*]mysql> slave stop;
[*]mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
[*]mysql> slave start;
[*]
[*]解决办法二、
[*]首先停掉Slave服务:slave stop
[*]到主服务器上查看主机状态:
[*]记录File和Position对应的值
[*]进入master
[*]mysql> show master status;
[*]+----------------------+----------+--------------+------------------+
[*]| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
[*]+----------------------+----------+--------------+------------------+
[*]| localhost-bin.000094 | 33622483 |            |                  |
[*]+----------------------+----------+--------------+------------------+
[*]1 row in set (0.00 sec)
[*]
[*]然后到slave服务器上执行手动同步:
[*]mysql> change master to
[*]> master_host='master_ip',
[*]> master_user='user',
[*]> master_password='pwd',
[*]> master_port=3306,
[*]> master_log_file='localhost-bin.000094',
[*]> master_log_pos=33622483 ;
[*]1 row in set (0.00 sec)
[*]mysql> slave start;
  

  手动同步需要停止master的写操作!
  转载(MySQL同步常见问题解答(FAQ): QA(http://www.mysqlpub.com/thread-159-1-1.html )
  
  备用:http://cwtea.blog.51cto.com/4500217/956962
  


页: [1]
查看完整版本: 我的笔记-Mysql同步相关