yii2 mysql gone away,yii2 console MySQL server
yii2 console MySQL server has gone away经过我的不屑努力和研究终于得到解决方案
修改配置文件common/config/main.php
在components中添加'commandClass'=>"\common\lib\DbCommand",添加检测连接配置return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=test',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'tablePrefix' => '',
'commandClass'=>"\common\lib\DbCommand",#添加检测连接配置
],
]
创建common\lib\DbCommand.php<?php
/**
* Name: Db连接检测
* Author: JiaMeng <666@majiameng.com>
* Date: 2018/7/6 11:59
* Description: IndexController.php.
*/
namespace common\lib;
class DbCommand extends \yii\db\Command{
public function execute()
{
try {
return parent::execute();
} catch (\yii\db\Exception $e) {
if ($e->errorInfo[1] == 2006 || $e->errorInfo[1] == 2013) {//2006 mysql has gone away
$this->db->close();
$this->db->open();
$this->pdoStatement = null ;
return parent::execute();
}else{
throw $e;
}
}
}
protected function queryInternal($method, $fetchMode = null){
try {
return parent::queryInternal($method, $fetchMode);
} catch (\yii\db\Exception $e) {
if ($e->errorInfo[1] == 2006 || $e->errorInfo[1] == 2013) {
$this->db->close();
$this->db->open();
$this->pdoStatement = null ;
return parent::queryInternal($method, $fetchMode);
}else{
throw $e;
}
}
}
}
测试<?php
namespace console\controllers;
use yii\console\Controller;
use Yii;
class IndexController extends Controller
{
public function actionTest(){
ini_set('default_socket_timeout', -1);
for ($i=0;$i<=100;$i++){
echo "\r\n";
sleep(1);
echo date('H;i:s').":".$i;
try{
$a = \yii::$app->tinymeng->createCommand('SELECT id,username FROM user WHERE id=1');
$result = $a->queryOne();
echo json_encode($result);
}catch (\Exception $exception){
echo "close !";
}
}
}
}
执行中重启服务器数据库17;36:07:0{"id":"1","username":"admin"}
17;36:08:1{"id":"1","username":"admin"}
17;36:09:2{"id":"1","username":"admin"}
17;36:10:3{"id":"1","username":"admin"}
17;36:11:4{"id":"1","username":"admin"}
17;36:12:5{"id":"1","username":"admin"}
17;36:13:6{"id":"1","username":"admin"}
17;36:14:7{"id":"1","username":"admin"}
17;36:15:8{"id":"1","username":"admin"}
17;36:17:9{"id":"1","username":"admin"}
17;36:18:10{"id":"1","username":"admin"}
17;36:19:11{"id":"1","username":"admin"}
17;36:20:12{"id":"1","username":"admin"}
17;36:21:13{"id":"1","username":"admin"}
17;36:22:14{"id":"1","username":"admin"}
17;36:23:15close !
17;36:24:16close !
17;36:25:17close !
17;36:27:18{"id":"1","username":"admin"}
17;36:29:19{"id":"1","username":"admin"}
17;36:30:20{"id":"1","username":"admin"}
17;36:31:21{"id":"1","username":"admin"}
yii2 mysql gone away,yii2 console MySQL server相关推荐
- mysql root远程访问权限_mysql8.0 Server在Windows平台中的安装、初始化和远程访问设置...
mysql8.0 server安装 1.下载mysql 8.0 可以到mysql官网下载 https://dev.mysql.com/downloads/mysql 或者如下地址 mysql-8.0. ...
- 怎么把mysql转换mssql_MySQL如何转SQL server
本文咱讨论的重点是如何将MySql数据导入到Sql Server数据库中,所以就需要机器上同时安装了MySql和Sql Server两种数据库. 要点:mysql 和 mysql odbc 都是64位 ...
- mysql errmsg unknown_详解MySQL Server 启动时出现bug的解决方法
在用的mysql Server 无法启动.日志如下: 复制代码 代码示例: 130507 12:22:11 mysqld started 130507 12:22:11 [Warning] opti ...
- Mysql 启动失败没日志,MySQL Server 5.7将无法启动,并且未填充错误日志
我最近在Ubuntu 14.04上安装了MySQL Server 5.7(通过ansible使用this role是具体的).首次安装时启动很好,但是当我尝试重新启动它时,它会永远挂起: sudo s ...
- MySQL不能启动 Can't start server : Bind on unix socket: Permission denied
[问题描述] MySQL不能启动 Can't start server : Bind on unix socket: Permission denied [解决方案] 查看my.cnf文件,找到.so ...
- mysql 长连接 has gone away_MySQL server has gone away报错原因分析/
在平时和开发的交流 以及 在论坛回答问题的或称中会发现这个问题被问及的频率非常高. 程序中报错: MySQL server has gone away 是什么意思? 如何避免? 因此,感觉有必要总结一 ...
- MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
注意:本文出自 "阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.csdn.net/faye0412/article/details/703 ...
- mySql学习笔记:比sql server书写要简单
在学mySql.总的感觉,mySql与Sql Server差不多,语法都很象,但mySql也许是吸取了SQL SERVER的一些经验,SQL语句书写起来更加简单. 比如说,设置主键.索引,SQL SE ...
- Mysql Can't connect to MySQL server
Mysql Can't connect to MySQL server on 'xxxx' (111) 从其它地方远程连接mysql服务器时如此错误 解决办法: # vi /etc/mysql/my. ...
最新文章
- 连接服务器_命令行连接FTP服务器
- 干货丨计算机视觉必读:图像分类、定位、检测,语义分割和实例分割方法梳理(经典长文,值得收藏)
- LNMP - Nginx访问控制
- hust sci列表
- xfce右键open in terminal失效问题解决
- 在大数据时代下金融风控的分类
- 【BZOJ1044】【tyvj3511】【codevs1870】木棍分割,二分答案+滚动数组+前缀和DP
- 设计模式学习-每日一记(16.模板方法模式)
- 百兆以太网口通信速率_千兆以太网的传输速度
- html实现在线展示pdf文件,在html页面中展示pdf文件,实现在线阅读
- excel报表导出功能
- 小鬼授权系统源码全解密源码 附授权代码
- AutoCAD Civil 3D-装配(标准横断面)
- 电话那头原来是个大美女
- 计算机怎么知道乘法优先,计算器算个明白.doc
- alienware笔记本过热处理
- MySQL 密码设置
- iOS的键盘种类(不同的键盘布局)
- maya! board_送给自学3d建模的你,自学maya,zbrush,substance一个月的感想
- C++之类和对象1:望尽天涯路