Mysql主從復制配置
原因
需要在兩個數據庫中,進行數據同步。
1、基礎設置準備
#操作系統(tǒng): centos6.5 #mysql版本: 5.7 #兩臺虛擬機: node1:192.168.85.11(主) node2:192.168.85.12(從)
2、安裝mysql數據庫
#詳細安裝和卸載的步驟參考對應的文檔
3、在兩臺數據庫中分別創(chuàng)建數據庫
--注意兩臺必須全部執(zhí)行 create database msb;
4、在主(node1)服務器進行如下配置:
#修改配置文件,執(zhí)行以下命令打開mysql配置文件 vi /etc/my.cnf #在mysqld模塊中添加如下配置信息 log-bin=master-bin #二進制文件名稱 binlog-format=ROW #二進制日志格式,有row、statement、mixed三種格式,row指的是把改變的內容復制過去,而不是把命令在從服務器上執(zhí)行一遍,statement指的是在主服務器上執(zhí)行的SQL語句,在從服務器上執(zhí)行同樣的語句。MySQL默認采用基于語句的復制,效率比較高。mixed指的是默認采用基于語句的復制,一旦發(fā)現基于語句的無法精確的復制時,就會采用基于行的復制。 server-id=1 #要求各個服務器的id必須不一樣 binlog-do-db=msb #同步的數據庫名稱
5、配置從服務器登錄主服務器的賬號授權
--授權操作 set global validate_password_policy=0; set global validate_password_length=1; grant replication slave on *.* to 'root'@'%' identified by '123456'; --刷新權限 flush privileges;
6、從服務器的配置
#修改配置文件,執(zhí)行以下命令打開mysql配置文件 vi /etc/my.cnf #在mysqld模塊中添加如下配置信息 log-bin=master-bin #二進制文件的名稱 binlog-format=ROW #二進制文件的格式 server-id=2 #服務器的id
7、重啟主服務器的mysqld服務
#重啟mysql服務 service mysqld restart #登錄mysql數據庫 mysql -uroot -p #查看master的狀態(tài) show master status;
8、重啟從服務器并進行相關配置
#重啟mysql服務 service mysqld restart #登錄mysql mysql -uroot -p #連接主服務器 change master to master_host='192.168.150.11',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=334; #啟動slave start slave #查看slave的狀態(tài) show slave status\G(注意沒有分號)
出現兩個YES,證明配置成功。
9、此時可以在主服務器進行相關的數據添加刪除工作,在從服務器看相關的狀態(tài)
結論
在同步過程中出現了問題:
從表中已經存在主表已經存在的表
主表中刪除的表,從表不存在
主和有相同的表但是列名不一致
數據庫結構必須保持一致:
從表的字段類型必須與主表保持一直
從表的字段順序必須與主表保持一直,從表可以在順序一致的情況下新增,字段。依舊可以同步成功
MySQL
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。