MySQL5.5+配置主從同步並結合ThinkPHP5設置分佈式數據庫

前言:

本文章是在同處局域網內的兩臺windows電腦,且MySQL是5.5以上版本下進行的一主多從同步配置,並且使用的是集成環境工具PHPStudy爲例。最後就是ThinkPHP5的分佈式的連接,讀寫分離配置,以後會用代碼簡單測試讀寫分離的效果。

 

數據庫部分:

一. 主庫(master)設置。

方法/步驟1:phpstudy至少開啓MySQL服務,並找到配置文件mysql.ini並進入。

方法/步驟2:進入mysql-ini文件找到“[mysqld]”節點,添加以下配置,完成後重啓服務。

server-id=1
log-bin=mysql-bin
binlog-do-db=repair_computer
binlog-do-db=jinde
binlog-do-db=test
binlog-ignore-db=weiqing

方法/步驟3:驗證配置是否成功,可以使用navicat for mysql工具新建查詢或者直接使用命令。

(1). 查看server-id,命令“ SHOW VARIABLES LIKE 'server_id'; ”

(2). 查看主庫的狀態( 需要同步的數據庫及不用同步的數庫 下圖中 file 和position 在從庫配置中會用到 (每次修改主服my.ini 文件 file和position 參數都會變 )

 

方法/步驟4:查看主庫電腦的局域網IP地址並且也添加一個給從庫連接的用戶賬號並分配權限(本地是測試的可以直接將root賬戶主機開放)

 

方法/步驟5:到這裏主庫master的配置就沒有了。

 

二. 從庫(slave)設置。

方法/步驟1:開啓MySQL服務並找到mysql.ini文件的[mysqld]節點下,添加以下配置

server-id=2
log-bin=mysql-bin
slave-net-timeout=60
replicate-do-db=repair_computer
replicate-do-db=jinde
replicate-do-db=test
replicate-ignore-db=weiqing

 

方法/步驟2:重啓服務,然後將主庫的幾個需要同步的數據導入到從庫(表名需一致).

 

方法/步驟3:打開mysql命令面板,輸入以下命令。

(1).  stop slave;    停止從庫

(2). change master to master_host=’2192.168.1.112’, master_user=’repl’, master_password=’repl’, master_log_file=’mysql-bin.000003’, master_log_pos=1937;

關於File 和 Position('mysql-bin.000003' 1937) 是主庫配置中的第3步得到的 主庫中輸入命令 show master status,前面幾個就是主庫的IP地址和用戶賬號密碼了。

(3). start slave;    開啓從庫

 

方法/步驟4:檢測主從是否打通,輸入命令“ show slave status \G; ”,查看“ Slave_IO_Running ”和“ Slave_SQL_Running ”是否都爲yes。

 

方法/步驟5: 可以去主庫的同步的表中隨便添加數據,然後再查看從表是否同步即可

 

TP5部分:

主庫(master)IP:192.168.1.112
從庫(slave) IP: 192.168.1.102

1. 找到ThinkPHP5的databases.php文件,deploy設置爲1(分佈式),具體可以參考TP5的在線文檔。

 

2. 讀寫分離只需將rw_separate設置爲true,並且前面的IP地址默認是主庫。測試讀操作是否會落到從表只需將從表的某個數據進行修改然後在代碼中使用查詢。

 

 

3. 寫操作可以在代碼中執行插入數據,然後分別查看主庫和從庫是否同步就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章