天天看點

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’ identified by '123456';

>flush privileges;

# vi /etc/my.cnf  (在[mysqld]下)

#bind-address = 127.0.0.1(ubuntu上一定要注釋掉該句,否則從mysql會無法連接配接主mysql的,redhat上沒有該項)

  server-id = 1  (資料庫伺服器都有唯一的server-id,通常主伺服器制定為1)

  log-bin=/var/log/mysql/logs/log 

  relay_log=/var/log/mysql/logs/relaylog   

  read-only = 0 (主mysql讀寫都可以)

:wq

# service mysqld restart

> show master status;

> show master status \G;

從:

注:從mysql上要先建和主mysql上一樣的資料庫名,并将主mysql上的資料庫導入到從mysql中,導入的資料庫備份時間最好是主mysql搭建主模式時的時間,否則同步時會報錯的(解決辦法是删除從mysql更新的部分,可根據報錯提示,也可将主mysql的log删掉,重新開機mysql重新生成log)

# vi /etc/my.cnf (在[mysqld]下)

   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   (隻允許讀操作)

>  change master to master_host='192.168.1.2',master_user='ming',master_password='123456'; 

> slave start;

> show slave  status \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

本文轉自linux部落格51CTO部落格,原文連結http://blog.51cto.com/yangzhiming/1660731如需轉載請自行聯系原作者

yangzhimingg