日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

php mysql 连接不上_PHP: 连接状态 - Manual

發(fā)布時(shí)間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysql 连接不上_PHP: 连接状态 - Manual 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

連接狀態(tài)

插件改變了 PHP MySQL 連接的控制,新建連接會(huì)從一個(gè)連接池中獲取,用于替代 client-server

的單一連接方式。連接池包含一組 master 連接,和可選數(shù)目的 slave 連接。

連接池中的每一個(gè)連接都有自己的狀態(tài),例如:SQL 用戶變量、臨時(shí)表、事物狀態(tài)。

所有的鏈接狀態(tài)可以參考 連接池與切換 說(shuō)明。

如果插件決定要為負(fù)載均衡切換連接,應(yīng)用可能得到一個(gè)不同狀態(tài)的鏈接。

應(yīng)用必須能夠處理這些問題。

示例 #1 配置了一個(gè) master 和一個(gè) slave 的插件

{

"myapp": {

"master": {

"master_0": {

"host": "localhost",

"socket": "\/tmp\/mysql.sock"

}

},

"slave": {

"slave_0": {

"host": "192.168.2.27",

"port": "3306"

}

}

}

}

示例 #2 陷阱:連接狀態(tài)和 SQL 用戶變量

$mysqli=?newmysqli("myapp","username","password","database");

if?(!$mysqli)/*?Of?course,?your?error?handling?is?nicer...?*/die(sprintf("[%d]?%s\n",mysqli_connect_errno(),mysqli_connect_error()));/*?鏈接?1:綁定?SQL?用戶變量,因?yàn)闆]有?SELECT?所以在?master?上執(zhí)行?*/if?(!$mysqli->query("SET?@myrole='master'"))?{printf("[%d]?%s\n",$mysqli->errno,$mysqli->error);

}/*?連接?2:因?yàn)橛?SELECT?所以在?slave?上執(zhí)行?*/if?(!($res=$mysqli->query("SELECT?@myrole?AS?_role")))?{printf("[%d]?%s\n",$mysqli->errno,$mysqli->error);

}?else?{$row=$res->fetch_assoc();$res->close();printf("@myrole?=?'%s'\n",$row['_role']);

}$mysqli->close();?>

以上例程會(huì)輸出:

@myrole = ''

范例打開了負(fù)載均衡連接,并且執(zhí)行兩個(gè)查詢。

第一個(gè)查詢 SET @myrole='master' 沒有以 SELECT

開頭。然而并不能識(shí)別這是一個(gè)應(yīng)該在 slave 中執(zhí)行的查詢,所以他被在 master 中執(zhí)行。

所以這個(gè)變量被綁定在 master 連接中,master 連接設(shè)定被改變了。

然后執(zhí)行 SELECT @myrole AS _role 查詢,差將將其識(shí)別為只讀查詢,

并且發(fā)送給 slave 服務(wù)器。這樣這個(gè)查詢不會(huì)獲得任何已經(jīng)設(shè)定的 SQL 用戶變量。

這個(gè)變量被設(shè)定在了第一次使用的 master 連接上面。所以范例將打印

@myrole = ''。

這是開發(fā)人員必須注意的問題,插件并不會(huì)監(jiān)控所有連接的變化情況。

若要監(jiān)控所有的變化,將消耗大量的 CPU 資源。

當(dāng)然這種陷阱,可以通過 SQL hints 解決。

總結(jié)

以上是生活随笔為你收集整理的php mysql 连接不上_PHP: 连接状态 - Manual的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。