MYSQL Error 2006HY000:MySQL server has gone away的解决方案

MySQL server has gone away有几种情况。

1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。
最常见的就是采集或者新旧数据转化。
解决方案:

在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000

关于两个变量的具体说明可以google或者看官方手册。

如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:

sql = “set interactive_timeout=24*3600”;
mysql_real_query(…)

2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。

比如,图片数据的处理

解决方案

在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M(也可以设置自己需要的大小)

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

Apache同IP不同端口虚拟主机配置

此为正解 其他的都是乱写

那些linux里面还有Windows路径的。。郁闷  看傻掉了。。
Listen 192.168.1.2:80 //80端口其实是不需要监听的(此句可省略)
Listen 192.168.1.2:8891
<VirtualHost 192.168.1.2:80>
DocumentRoot ../htdocs/www
ServerName www.******.com
</VirtualHost>
<VirtualHost 192.168.1.2:8891>
DocumentRoot ../htdocs/pma
ServerName www.******.com
</VirtualHost>

使用配置文件中定义的控制用户连接失败 解决方法

问题如下:
链接表的额外特性尚未激活。要查出原因,请点击此处。
使用配置文件中定义的控制用户连接失败。
服务器上运行了 Suhosin。请先查看文档中是否有类似的情况。
由于我是使用的apt-get安装的phpmyadmin,检查配置文件发现,/usr/share/phpmyadmin下的config.inc.php实际上映射的是/etc/phpmyadmin/config.inc.php。
打开/etc/phpmyadmin/config.inc.php,根据错误提示,找到控制用户的代码:
$cfg[‘Servers’][$i][‘controluser’] =
$cfg[‘Servers’][$i][‘controlpass’] =
删掉等号后面的东西,改成:
$cfg[‘Servers’][$i][‘controluser’] = ‘root’;
$cfg[‘Servers’][$i][‘controlpass’] = ’123456′;
123456为你root的密码,保存,刷新phpmyadmin页面 使用配置文件中定义的控制用户连接失败。 问题解决。
网络下下载一个对应你phpmyadmin版本的安装包,我下载的是:phpMyAdmin-3.2.2-all-languages.zip,解压scripts/create_tables.sql文件,登录phpmyadmin,新建一个名叫phpmyadmin的数据库,导入create_tables.sql文件。
然后修改/etc/phpmyadmin/config.inc.php,将:
$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
$cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma_bookmark’;
$cfg[‘Servers’][$i][‘relation’] = ‘pma_relation’;
$cfg[‘Servers’][$i][‘table_info’] = ‘pma_table_info’;
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma_table_coords’;
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma_pdf_pages’;
$cfg[‘Servers’][$i][‘column_info’] = ‘pma_column_info’;
$cfg[‘Servers’][$i][‘history’] = ‘pma_history’;
$cfg[‘Servers’][$i][‘designer_coords’] = ‘pma_designer_coords’;
前的注释去掉,不过,我的本身就这样,我没做任何修改,登出phpmyadmin,再登录,如何?链接表的额外特性尚未激活。要查出原因,请点击此处。 问题解决!
至于 服务器上运行了 Suhosin。请先查看文档中是否有类似的情况。 问题,suhosin本身是加强PHP安全性的脚本,不影响mysql使用,无须理会。