導航:首頁 > 編程語言 > phpmysql主從分離

phpmysql主從分離

發布時間:2022-05-19 06:08:23

php mysql 怎麼實現讀寫分離

<?php
class Db
{
private $res;
function __construct($sql)
{
$querystr = strtolower(trim(substr($sql,0,6)));
//如果是select,就連接slave伺服器
if($querystr == 'select')
{
$res=$this->slave_select($sql);
$this->res=$res;
}
//如果不是select,就連接master伺服器
else
{
$res=$this->master_change($sql);
$this->res=$res;
}
}

/**
* slave從庫返回sql查詢結果
* @param $sql
* @return array
*/
private function slave_select($sql){
//該處只是隨機獲取slave節點的ip,當然,還可以採用其他演算法獲取slave_ip
$slave_server=$this->get_slave_ip();
$dsn="mysql:host=$slave_server;dbname=test";
$user='root';
$pass='123456';
$dbh=new PDO($dsn, $user, $pass);
return $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
}

/**master主庫返回sql執行結果
* @param $sql
* @return int
*/
private function master_change($sql){
$master_server='192.168.33.22';
$dsn="mysql:host=$master_server;dbname=test";
$user='root';
$pass='123456';
$dbh=new PDO($dsn, $user, $pass);
return $dbh->exec($sql);
}

/**
* 隨機獲取slave-ip
* @return mixed
*/
private function get_slave_ip(){
$slave_ips=['192.168.33.33','192.168.33.44'];
$count=count($slave_ips)-1;
$random_key=mt_rand(0,$count);
return $slave_ips[$random_key];
}

/**
* 獲取結果
* @return int
*/
public function get_res(){
return $this->res;
}
}

$sql1 = "select * from t1";
$sql2 = "insert into t1 (name) values ('haha')";
$sql3 = "delete from t1 where id=1";
$sql4 = "update t1 set name='Jerry' where id=2";

$db = new Db($sql1);
//$db = new Db($sql2);
//$db = new Db($sql3);
//$db = new Db($sql4);

var_mp($db->get_res());

㈡ mysql 實現讀寫分離時 必須要用mysql-proxy嗎或者直接更改mysql配置就可以主從分離嗎

寫的時候是寫到主庫上,然後通過mysql主從,數據會復制到從庫,那麼可先測試主從同步是否正常,然後停掉主從同步功能,再寫數據,數據會插入到主庫,從庫是查不到的。或者修改從庫中的某條數據,通過客戶端連到代理上查詢這條數據,查詢到代表讀寫分離沒問題了。
http://www.rootop.org/pages/2413.html
這是當時測試讀寫分離的文檔,可供參考下。

㈢ PHP伺服器與MYSQL伺服器分開如何做

在PHP.INI中把mysql擴展模塊加進去.即;extension=php_mysql.dll前面的分號去掉,再裝個ODBC連上B電腦上的MYSQL,然後你在程序里用B電腦的IP就可以連上了,mysql_connect("b電腦IP","資料庫用戶名","資料庫密碼");哦,對了把B電腦的MYSQL服務必須打開.

㈣ php mysql讀寫分離的原理好處,什麼情況下需要讀寫分離,怎樣做到讀寫分離,和讀寫分離後數據如何統一

資料庫主從關系,讀寫分離。減輕資料庫 壓力

㈤ mysql 主從復制 php 怎麼辦

mysql主從復制與php沒有半毛錢關系,如果你是想說php怎麼連接mysql主從環境,這個必須代碼裡面實現,網上多的是教程

㈥ lnmp環境php與mysql分離不同伺服器,linux下php和nginx在A伺服器IP192

已經很明白了啊 ,php.ini里搜索"extension" ,會發現有關於mysql的擴展,你需要把前面的";"去掉,然後重啟你的web伺服器

㈦ Linux環境nginx php與mysql分離

建議php用源碼安裝

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
用這個命令編譯
基本上常用的功能都有了

㈧ 把php和mysql分開放在兩台伺服器哪台更耗資源

一般來說,是mysql更耗資源
但也和你的網站程序復雜度有關
如果你的程序和mysql交互很少,那就有可能php壓力大些

㈨ mysql 如何實現讀寫分離,用mysql-proxy 或者直接用php連接兩個資料庫

Mysql主從配置,實現讀寫分離
原理:主伺服器(Master)負責網站NonQuery操作,從伺服器負責Query操作,用戶可以根據網站功能模特性塊固定訪問Slave伺服器,或者自己寫個池或隊列,自由為請求分配從伺服器連接。主從伺服器利用MySQL的二進制日誌文件,實現數據同步。二進制日誌由主伺服器產生,從伺服器響應獲取同步資料庫。
具體實現:
1、在主從伺服器上都裝上MySQL資料庫,windows系統鄙人安裝的是mysql_5.5.25.msi版本,Ubuntu安裝的是mysql-5.6.22-linux-glibc2.5-i686.tar
windows安裝mysql就不談了,一般地球人都應該會。鄙人稍微說一下Ubuntu的MySQL安裝,我建議不要在線下載安裝,還是離線安裝的好。大家可以參考 http://www.linuxidc.com/Linux/2013-01/78716.htm 這位不知道大哥還是姐妹,寫的挺好按照這個就能裝上。在安裝的時候可能會出現幾種現象,大家可以參考解決一下:
(1)如果您不是使用root用戶登錄,建議 su - root 切換到Root用戶安裝,那就不用老是 sudo 了。
(2)存放解壓的mysql 文件夾,文件夾名字最好改成mysql
(3)在./support-files/mysql.server start 啟動MySQL的時候,可能會出現一個警告,中文意思是啟動服務運行讀文件時,忽略了my.cnf文件,那是因為my.cnf的文件許可權有問題,mysql會認為該文件有危險不會執行。但是mysql還會啟動成功,但如果下面配置從伺服器參數修改my.cnf文件的時候,你會發現文件改過了,但是重啟服務時,修改過後的配置沒有執行,而且您 list一下mysql的文件夾下會發現很多.my.cnf.swp等中間文件。這都是因為MySQL啟動時沒有讀取my.cnf的原因。這時只要將my.cnf的文件許可權改成my_new.cnf的許可權一樣就Ok,命令:chmod 644 my.cnf就Ok
(4)Ubuntu中修改文檔內容沒有Vim,最好把Vim 裝上,apt-get install vim,不然估計會抓狂。
這時候我相信MySQL應該安裝上去了。
2、配置Master主伺服器
(1)在Master MySQL上創建一個用戶『repl』,並允許其他Slave伺服器可以通過遠程訪問Master,通過該用戶讀取二進制日誌,實現數據同步。

㈩ mysql主從讀寫分離 怎麼保證數據同步

如果兩台電腦在一個區域網內,一般只會有很小的時延。理論上確實存在微小差別的可能,所以讀寫分離業務也不是說所有讀業務都放在從機,讀寫一體的操作還是需要放在主機上的。

閱讀全文

與phpmysql主從分離相關的資料

熱點內容
二次元表格編程 瀏覽:20
plc編程器保停 瀏覽:963
如何降低伺服器的內存佔用率 瀏覽:868
阿里雲伺服器是個什麼意思 瀏覽:817
國內最好的數控編程培訓學校 瀏覽:13
222乘104列是演算法 瀏覽:159
程序員溝通正確姿勢 瀏覽:969
魔玩app怎麼視頻推廣 瀏覽:960
程序員抽獎送禮 瀏覽:458
北京java程序員薪資 瀏覽:658
如何創建網路平台或者app 瀏覽:355
python隨機數生成控制概率 瀏覽:235
壓縮機並聯運行 瀏覽:899
兩位單片機 瀏覽:63
四川音樂類投檔線的演算法 瀏覽:650
建行app如何改轉賬卡 瀏覽:26
android開發升級 瀏覽:299
要火社區app進不去怎麼辦 瀏覽:826
安卓手機上的自定義功能怎麼用 瀏覽:230
方舟伺服器怎麼購買進去資格 瀏覽:44