您尚未登录。

#1 2015-03-20 10:12:14

BSCH
会员
注册时间: 2015-03-20
帖子: 2

mysql-workbench 老是 Error Code: 2006. MySQL server has gone away

先说现象:
mysql-workbench 连接到服务器后,10s内如果不执行SQL语句,那么就会gone away
换句话说,如果要保持能正常用mysql-workenbench,就得保持每不到10s,就得执行个SQL语句

网上搜的结果大都是大批量insert的时候,一条语句10s内执行不完报错
另外,网上的建议是调整MYSQL的参数,我也知道调整MYSQL参数多数能凑合,但是,MYSQL是另外部门管理的,我只是用,改参数不现实
其次,其他同事的客户端都好好的,包括windows的mysql-workbench也完全正常,就我这有问题

MYSQL 服务器貌似有timeout 个人觉得可能相关的项如下:
SHOW GLOBAL VARIABLES LIKE  '%timeout';

interactive_timeout    10
wait_timeout    10

简单抓包对比过
有一点比较疑惑,我的机器在超过10s的时候,会给服务器发个MYSQL_QUIT,不知道哪里发的

另外,不知道有没有可能跟我的机器环境有关?也可能不是mysql-workbench的问题,archlinux新装的系统,没特别动过配置


求解决思路,谢谢
这问题搞的很郁闷,每次用mysql,都得开个vbox

离线

#2 2015-03-20 10:37:09

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: mysql-workbench 老是 Error Code: 2006. MySQL server has gone away

mysql 默认alive超时是 8小时,而且大部分dba都不会去修改,
所以你知道,这个是你自己用的mysql client的问题。

解决办法由2:
1,每次登陆后 把那两个变量手动set 到比较大的值, 只限于这次session连接。
2,找到你说的那个mysql-workbench的配置文件,搜索下那两个变量,兴许能找到改下,google下 mysql-workbench如何指定mysql [client]的配置,相当于在自己的my.cnf在配置里面改

COMMIT:
这是一些正常的值,你参考下
```
mysql> SHOW GLOBAL VARIABLES LIKE  '%timeout';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 10    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 120   |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 28800 |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 28800 |
+----------------------------+-------+
```

最近编辑记录 atmouse (2015-03-20 10:41:34)

离线

#3 2015-03-20 11:05:54

BSCH
会员
注册时间: 2015-03-20
帖子: 2

Re: mysql-workbench 老是 Error Code: 2006. MySQL server has gone away

首先咨询下
1 SHOW GLOBAL VARIABLES LIKE  '%timeout'; 显示的内容是本机或者当前session的数据,还是服务器的数据?如果是服务器的数据,我前面贴了显示
interactive_timeout    10
wait_timeout    10

2 mysql 默认alive超时是 8小时,而且大部分dba都不会去修改 这个时间是怎么看的?是不是上面两个值?如果是,DBA就已经改了,郁闷呀

3 找到你说的那个mysql-workbench的配置文件,搜索下那两个变量,兴许能找到改下,google下 mysql-workbench如何指定mysql [client]的配置,相当于在自己的my.cnf在配置里面改
没搜到相关的信息,还在搜索中。。。

离线

#4 2015-03-20 11:43:58

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: mysql-workbench 老是 Error Code: 2006. MySQL server has gone away

1 显示的是当前session, 要看服务器默认要问数据库管理员或者你找个没有二次设置的看
2 从其他人不会的情况来看, 绝对是你自己客户端配置问题。 默认8小时就是默认,就是show processlist 那边的sleep超过8小时候服务端会强制断开。 而你这是只有10秒客户端就自己断开了。 还有超时有两种, 一种是wait也就是什么都没操作的情况下sleep的,还有事有语句正在执行的 interactive,这两个你都是10秒
3 如果不知道怎么找, 你暂时用linux的client命令吧, 安装mysql就有了,配置文件在/etc/my.cnf 里面

离线

页脚