php mysql 连接不上_PHP: 连接状态 - Manual
连接状态
插件改变了 PHP MySQL 连接的控制,新建连接会从一个连接池中获取,用于替代 client-server
的单一连接方式。连接池包含一组 master 连接,和可选数目的 slave 连接。
连接池中的每一个连接都有自己的状态,例如:SQL 用户变量、临时表、事物状态。
所有的链接状态可以参考 连接池与切换 说明。
如果插件决定要为负载均衡切换连接,应用可能得到一个不同状态的链接。
应用必须能够处理这些问题。
示例 #1 配置了一个 master 和一个 slave 的插件
{
"myapp": {
"master": {
"master_0": {
"host": "localhost",
"socket": "\/tmp\/mysql.sock"
}
},
"slave": {
"slave_0": {
"host": "192.168.2.27",
"port": "3306"
}
}
}
}
示例 #2 陷阱:连接状态和 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 用户变量,因为没有 SELECT 所以在 master 上执行 */if (!$mysqli->query("SET @myrole='master'")) {printf("[%d] %s\n",$mysqli->errno,$mysqli->error);
}/* 连接 2:因为有 SELECT 所以在 slave 上执行 */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();?>
以上例程会输出:
@myrole = ''
范例打开了负载均衡连接,并且执行两个查询。
第一个查询 SET @myrole='master' 没有以 SELECT
开头。然而并不能识别这是一个应该在 slave 中执行的查询,所以他被在 master 中执行。
所以这个变量被绑定在 master 连接中,master 连接设定被改变了。
然后执行 SELECT @myrole AS _role 查询,差将将其识别为只读查询,
并且发送给 slave 服务器。这样这个查询不会获得任何已经设定的 SQL 用户变量。
这个变量被设定在了第一次使用的 master 连接上面。所以范例将打印
@myrole = ''。
这是开发人员必须注意的问题,插件并不会监控所有连接的变化情况。
若要监控所有的变化,将消耗大量的 CPU 资源。
当然这种陷阱,可以通过 SQL hints 解决。
php mysql 连接不上_PHP: 连接状态 - Manual相关推荐
- php mysql 连接不上_php连接不上MySQL问题解决办法_PHP教程
php连接不上mysql的原因有很多种常用的可能是函数没开启或mysql数据库配置有问题,下面我来给大家介绍php连接不上MySQL一些问题的分析与解决方法. 现象1 在PHP error log里发 ...
- PHP与MySQL连接菜鸟教程_PHP 连接 MySQL - PHP 教程 - 菜鸟学堂-脚本之家
PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ...
- php连接mysql的区别吗_php连接mysql之mysql_connect()与mysqli_connect()的区别
实例 打开一个到 MySQL 服务器的新的连接: $con=mysqli_connect("localhost","wrong_user","my_p ...
- 计算机网怎样连接网络连接不上,网络连接不上,详细教您电脑网络连接不上怎么解决...
我们的生活因为无线局域网的出现获得了很大的方便,不过因为无限网络信道特有的性质,有时我们会在使用过程中出现电脑网络连接不上的情况,这使得无线网络连接具有不稳定性,影响了服务质量.应该怎么办呢?下面,小 ...
- joycon 连不上_switch手柄连接不上ns 连接不上蓝牙手柄硬件等问题解决方案
switch手柄连接不上ns,相信大家多多少少都会遇到的问题,有时候不仅会出现手柄连接不上,还有一些小问题,比如无法给手柄充电,识别不了游戏卡等等,这些虽说是小问题,但处理起来也是够麻烦的,在这里给大 ...
- python与sql连接不上_Python连接不上SQL Server的两种根治思路
连接不上数据库,首先可以排除是代码的问题,连接方式都是千篇一律的. 大多数问题都是本机的两个原因造成的,1.服务没有开启,2.没有启动SQL配置的TCP/IP 下面给出统一解决方案: 首先从开始菜单找 ...
- 虚拟机服务器拒绝密码,Xshell连接不上虚拟机连接提示SSH服务器拒绝了密码,请再试一次...
问题1:Xshell连接不上虚拟机 #启动ssh服务 /etc/init.d/ssh start #查看SSH服务22端口是否开启 netstat -antulp | grep ssh 问题2:XSh ...
- redis远程连接不上_redis连接认证及bind的注意事项
redis连接安全相关的设置主要有三个:protected-mode,bind,requirepass.下面我们来看一下这三个设置的作用. 第一个设置:protected-mode yes 开启保护模 ...
- 网络映射连接不上_Mac连接不上无线网络的解决方法
Mac电脑突然连不上WiFi了怎么办?小编使用了这么久的Mac,这种情况也是出现过很多次的,这个问题如果不是因为苹果无线网硬件出现了故障,基本都能通过排除法来解决问题,主要解决思路是从路由器过热造成网 ...
最新文章
- net.sf.json将string转为map
- spring 发送html邮件,Springboot2.0 发送HTML 格式的邮件。
- Ubuntu 14.04系统下安装和编译QT 5.9.2库(桌面版/ARM嵌入式IMX6版)
- 活动合作 | 2018GAITC大会:AI领袖、应用指南、窥见风口,还能从中获得更多
- mongodb从3.2升级到4.4_人教版六年级下册数学微课视频及练习4.4.2 比例尺的应用...
- 我的本科毕业论文——Messar即时通讯系统
- 高级人才、专业技术人才、技能人才 目录 1. 高级人才,	1 1.1. 专业技术人才	2 2. 专业技术人才	2 3. 高技能人才 	3 1.高级人才, 可迁入本市市区落户,其配偶、未婚子女(含离
- 运筹学考题汇总(填空题+计算题)带答案
- 安装sqlserver 2017安装 需要安装oracle JRE7 更新 51(64位)或更高版本(已解决)
- Windows下MySQL定时备份脚本
- 增加Java项目经验
- 输出0~1000内的质数 C语言
- 08 干系人管理ITO
- 不要试图做完人--任正非在华为优秀党员座谈会上的发言
- 【修真院WEB小课堂】 angular js中的依赖注入是什么?
- 如何成为一名卓越的软件工程师
- 当梵高遇上路飞——海贼王op风格迁移
- FLStudio中文全套插件包FL水果20.8中文宿主软件插件
- android九宫格隐藏,android九宫格锁屏控件
- 【图书管理系统】附源码+教程