專案想要資料庫讀寫分離,需要配置兩個方面,一個是資料庫配置,另一個是ThinkPHP5配置,前面寫過一篇關于MySQL讀寫分離配置的文章MySQL主從同步及讀寫分離,這篇介紹ThinkPHP5里怎么運用
主服務器ip:192.168.8.102,從服務器ip:192.168.8.103
一、修改TP5資料庫組態檔

需要修改服務器地址,用戶名,密碼,埠,資料庫部署方式,開啟讀寫分離
第一個IP地址默認是主庫,連接的資料庫個數取決于hostname定義的數量,所以即使是兩個相同的IP也需要重復定義,但其他引數如果存在相同的可以不用重復定義,如:
'hostport' => '3306,3306',
和
'hostport' => '3306',
等效,
二、TP5測驗
<?php namespace app\index\controller; use think\Controller; use think\Db; class Index extends Controller { // 讀測驗 public function index() { $list = Db::table('user')->select(); echo "<pre>"; print_r($list); } // 寫操作測驗 public function curd() { $data['name'] = 'asdzxc'; $data['age'] = 12; $res = Db::table('user')->insert($data); if ($res) { echo "success"; }else{ echo "error"; } } }
分別進行了讀操作和寫操作,也都請求成功了,下面從日志上看是否真正讀寫分離了

我是先添加資料,再查詢,從上面的日志可以看出,寫操作(添加、修改、洗掉)是在192.168.8.102主服務器上,讀操作(查詢)是在192.168.8.103從服務器上
如果出現資料庫訪問權限問題,可以使用如下方法提權
GRANT ALL PRIVILEGES ON *.* TO '賬號'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; //提權 flush privileges; //重繪
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/230183.html
標籤:其他
上一篇:只需兩步,Tomcat JVM 引數性能迅速調到最優!
下一篇:計算機組成-無鎖編程追求極致性能
