chinaab 发表于 2018-10-3 09:25:16

Mysql 5.6主从同步

  Mysql 5.6主从同步(和5.1是有不同的):
  和5.1不同主要有两处(都在从部分):
  1、指定master部分不能写到/etc/my.cnf里了,得在mysql命令里敲
  2、启动/停止slave命令为:start/stop/reset slave(5.1是slave在前)
  主(和5.1一样):
  # mkdir /var/log/mysql/logs
  # chown -R mysql:mysql /var/log/mysql/logs
  # mysql -u root -p123456

  > grant replication slave on *.* to 'ming’@’192.168.1.3’>  >flush privileges;
  # vi /etc/my.cnf(在下)
  #bind-address = 127.0.0.1(ubuntu上一定要注释掉该句,否则从mysql会无法连接主mysql的,redhat上没有该项)
  server-id = 1(数据库服务器都有唯一的server-id,通常主服务器制定为1)
  log-bin=/var/log/mysql/logs/log

  >  read-only = 0 (主mysql读写都可以)
  :wq
  # service mysqld restart
  # mysql -u root -p123456
  > show master status;
  或
  > show master status \G;
  从:
  注:从mysql上要先建和主mysql上一样的数据库名,并将主mysql上的数据库导入到从mysql中,导入的数据库备份时间最好是主mysql搭建主模式时的时间,否则同步时会报错的(解决办法是删除从mysql更新的部分,可根据报错提示,也可将主mysql的log删掉,重启mysql重新生成log)
  # mkdir /var/log/mysql/logs
  # chown -R mysql:mysql /var/log/mysql/logs
  # vi /etc/my.cnf (在下)
  server-id = 2    (原为server-id=1,当然设成非1的其它数字也可以)
  log-bin=/var/log/mysql/logs/log (指定mysql二进制日志路径)
  relay_log=/var/log/mysql/logs/relaylog
  read-only=1   (只允许读操作)
  # service mysqld restart
  # mysql -u root -p123456
  >change master to master_host='192.168.1.2',master_user='ming',master_password='123456';
  > slave start;
  > show slavestatus \G;
  如果以下两项都为yes即是从机配置成功。
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  如果主从同时操作一般不会下面的问题,但如果主mysql运行了一段时间(已配好主模式),这时从同步时需从主mysql搭建主模式时的数据库备份导进从mysql,如果从mysql数据库导的较新就会出现下面报错
  从mysql上如果报错:Error 'Duplicate entry '368' for key 'PRIMARY'' on query.
  解决办法:
  通过图像化管理删数据库报错的内容吧(即更新的部分),命令行删除太累
  也可将主mysql的log删掉,重启mysql重新生成log

页: [1]
查看完整版本: Mysql 5.6主从同步