說明:-u :用戶名 -p :密碼 --lock-all-tables :執行操做時鎖住全部表,防止操做時有數據修改mysql
一、設置mysql配置文件[ 我使用的寶塔,因此直接在軟件商店的mysql裏邊直接進行配置設置 ]sql
主服務器:【mysqld】:log-bin=mysql-bin log_slave_updates=1 skip-grant-tables【跳過驗證權限】 server-id = 1數據庫
從服務器:【mysqld】:log-bin=relay-bin server-id = 2 skip-grant-tables【跳過驗證權限】服務器
注:必定要放行3306端口,不然鏈接不上!配置成功後,重啓mysql服務;我是手動直接點擊重啓的!ide
二、登陸到主服務器的mysql;建立一個在從服務器上同步時使用的帳號;測試
建立帳戶:create user '用戶名'@'訪問主機' identified by '密碼';spa
賦予權限:grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' ;【GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';】日誌
注:我已經在mysql裏建立好了帳號和密碼,因此直接利用第二句給建立的帳號賦予的權限;賦予權限時能夠直接給從服務器root賦予權限,也能夠給root下子帳號賦予權限;server
完成以後使用「FLUSH PRIVILEGES」進行刷新;blog
三、在主服務器終端獲取二進制日誌信息;
SHOW MASTER STATUS;
注:File爲使用的日誌文件名字,Position爲使用的文件位置,這兩個參數須記下,配置從服務器時會用到
四、進入從服務器,進入到mysql,設置鏈接master主服務器
change master to master_host='主服務器IP', master_user='帳號', master_password='密碼',master_log_file='mysql-bin.000008', master_log_pos=107;
五、開啓同步,查看同步狀態
六、測試主從同步
在主服務器mysql中建立一個數據庫,
在從服務器中查看新建的數據庫是否存在;
七、其餘的坑:
查看複製帳戶是否存在且是否賦予權限:mysql> show grants for 'usvr_replication'@'%';
+-----------------------------------------------------------------------------------------------------------------------------+
| Grants for usvr_replication@% |
+-----------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'usvr_replication'@'%' IDENTIFIED BY PASSWORD '*F4039654D0AFD80BB0A7775938EFD47ACB809529' |
+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
————————————————
從B使用該帳戶鏈接至A mysql -uusvr_replication -h 192.168.83.35 -p -P55944
若是第一次嘗試複製失敗後,在進行第二次嘗試時候必須中止第一次的連接stop slave;
上述方法在作的時候未進行從服務器權限配置,由於從服務器在配置完成後已經鎖住,當你在從服務器中表中加入數據時候,主服務器數據並不會作出改動。