主服務器ip:192.168.8.102,從服務器ip:192.168.8.103
一、主庫(master)配置
1.修改mysql.ini組態檔,在mysqld下添加如下配置,并重啟mysql服務
[mysqld] server-id=1 //主庫和從庫要不一致 log-bin=mysql-bin binlog-do-db=mstest_db //同步資料庫,要與從庫里配置的資料庫名保持一致 可以添加多個
2.驗證配置是否成功
a.通過“SHOW VARIABLES LIKE 'server_id';”命令查看

b.查看主庫的狀態,其中file和position在從庫配置中會用到,注意每次修改主庫的mysql.ini檔案,file和position引數都會變
3.授權給從服務器(slave)同步資料的賬號密碼
GRANT REPLICATION SLAVE ON *.*TO 'root'@'192.168.8.103' IDENTIFIED BY '123456';
引數說明:
- root:從庫連接主庫使用的賬號
- IDENTIFIED BY '123456':從庫連接主庫使用的密碼
- 192.168.8.103:從庫服務器ip
主庫(master)配置完成
二、從庫(slave配置)
1.修改mysql.ini組態檔,在mysqld下添加如下配置,并重啟mysql服務
[mysqld] server-id=2 //與主庫不能相同 log-bin=mysql-bin slave-net-timeout=60 //重連時間 replicate-do-db=mstest_db //同步資料庫 要與主庫里配置的資料庫名保持一致
說明:將主庫中需要同步的資料庫匯入到從庫,也可以新建,但必須保證資料庫名、表名、欄位名、資料型別全部保持一致,主從資料庫保持一致
2.在從服務器上設定同步命令
-- 停止從庫 stop slave; -- 設定同步 b.master_host='192.168.8.102',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000009',master_log_pos=1119; -- 開啟從庫 start slave
如果在執行第二步命令時出錯“Could not initialize master info structure, more error messages can be found in the MySQL error log”,可以先執行“reset slave;”重置從庫命令即可,
3.檢測主從是否打通
執行“show slave status”命令,查看“ Slave_IO_Running ”和“ Slave_SQL_Running ”是否都為yes,都為yes即標識主從同步
從庫(slave)配置完成
三、測驗主從是否同步
主資料庫user欄位格式如下,從資料庫也須與主資料庫格式一致
在主資料庫中插入一條資料,并查詢
INSERT INTO user (id,name,age) VALUES (null,'aabb',111); select * from user;
在主庫添加之后,再到從資料庫中查看,資料是否同步到從庫
select * from user;
可以看到在主庫添加的資料,在從庫里也能查詢到,說明主從同步成功,
需要注意幾點:
- 配置主從資料庫mysql.ini檔案時,同步的資料庫要保持一致,兩個資料庫的表名、欄位、型別都要保持一致,最好從主庫匯出,再匯入到從庫
- 主從庫的server-id不能相同
- 在從庫中設定同步時,如果報錯,可以先reset slave重置從庫
關于如何在ThinkPHP5運用,可以參看ThinkPHP5分布式資料庫讀寫分離
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/230262.html
標籤:其他
上一篇:力扣資料庫題目176第二高的薪水
