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