Drupal 7
每次访问Configuration>时都会收到此错误搜索和元数据>网址别名>模式(localhost / admin / config / search / path / patterns)
原始
PDOException:SQLSTATE [HY000]:一般错误:2006 MySQL服务器有 消失了:SELECT 1 AS表达式FROM {variable}变量WHERE( (name =:db_condition_placeholder_0));阵列( [:db_condition_placeholder_0] => drupal_css_cache_files)in variable_set()(第991行) /home/www/icts-website/includes/bootstrap.inc)。
其他
PDOException:SQLSTATE [HY000]:一般错误:2006 MySQL服务器有 消失了:INSERT INTO {watchdog}(uid,类型,消息,变量, 严重性,链接,位置,引用,主机名,时间戳)值 (:db_insert_placeholder_0,:db_insert_placeholder_1, :db_insert_placeholder_2,:db_insert_placeholder_3, :db_insert_placeholder_4,:db_insert_placeholder_5, :db_insert_placeholder_6,:db_insert_placeholder_7, :db_insert_placeholder_8,:db_insert_placeholder_9);阵列( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => PHP [:db_insert_placeholder_2] => %type:!%函数中的消息(行%行 %file)。 [:db_insert_placeholder_3] => 一个:6:{S:5:"%类型&#34 ;; S:12:" PDOException&#34 ;; S:8:"消息&#34 ;; S:!235: " SQLSTATE [HY000]: 一般错误:2006 MySQL服务器已经消失:SELECT 1 AS表达式 FROM {variable}变量WHERE((name =:db_condition_placeholder_0) );数组([:db_condition_placeholder_0] => drupal_css_cache_files ) &#34 ;; S:9:"%功能&#34 ;; S:14:" variable_set()&#34 ;; S:5:"%文件&#34 ;;小号:45:" /home/www/icts-website/includes/bootstrap.inc" ;; S:5:"%线&#34 ;; I:991; S:14:&#34 ; severity_level&#34 ;; I:3;} [:db_insert_placeholder_4] => 3 [:db_insert_placeholder_5] => [:db_insert_placeholder_6] => http://localhost/admin/config/search/path/patterns [:db_insert_placeholder_7] => http://localhost/ [:db_insert_placeholder_8] => 10.0.8.14 [:db_insert_placeholder_9] => 1444714070)在dblog_watchdog()中(第160行) /home/www/icts-website/modules/dblog/dblog.module)。
在关机功能中抛出未捕获的异常。
PDOException:SQLSTATE [HY000]:一般错误:2006 MySQL服务器有 消失了:DELETE FROM {semaphore} WHERE(value = :db_condition_placeholder_0);数组([:db_condition_placeholder_0] => 399784779561c9655b48719.42544548)在lock_release_all()中(/home/www/icts-website/includes/lock.inc的第269行)。
我用Google搜索了解决方案,我还将max_allowed_packet增加到了32M但仍然存在错误页面。
我将非常感谢您帮助解决此问题。
my.cnf
文件详情如下:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
max_allowed_packet = 32M
我正在使用CentOS 7和MySQL。
答案 0 :(得分:3)
是的,此错误与解析大量数据有关,因此数据库失败,因为它无法处理由于给定限制而导致的此类大小,因此服务器会超时并关闭连接。
要解决此问题,您需要在max_allowed_packet
下的my.cnf
(例如~/.my.cnf
)中进一步提高[mysqld]
的价值,例如
[mysqld]
max_allowed_packet=256M
尝试256M
,如果没有帮助,请尝试进一步增加(例如1G
)。
在您的情况下,我认为max_allowed_packet
应该在[mysqld]
部分下,而不是[mysqld_safe]
下,因此设置应用于正确的组件。
有关详细信息,请参阅:B.5.2.9 MySQL server has gone away。
另一件事是,在这种特殊情况下它发生在关闭函数中(这是在Drupal完成站点处理之后),因此它可能与某些cron或调试任务有关。
答案 1 :(得分:1)
看起来你的my.cnf缺少一些可能有用的InnoDB条目
$.getJSON('get.php',{cmd:"1", elem:$('#elem')},function(data) { // ... }
我的MySQL配置中有这些额外的行。它可能是也可能不是你的解决方案,但绝对值得一试。如果这没有帮助,请告诉我。您可能需要稍微调整这些值,具体取决于您的环境。
- 在更改my.cnf后别忘了重启MySQL。