首页 文章

PDOException:常规错误:2006 MySQL服务器已经消失

提问于
浏览
1

Drupal 7

每当我访问配置>搜索和元数据> URL别名>模式(localhost / admin / config / search / path / patterns)时,我都会收到此错误

Original

PDOException:SQLSTATE [HY000]:一般错误:2006 MySQL服务器已经消失:SELECT 1 AS表达式FROM 变量WHERE((name =:db_condition_placeholder_0));变量()中的数组([:db_condition_placeholder_0] => drupal_css_cache_files)(/home/www/icts-website/includes/bootstrap.inc的第991行) .

Additional

PDOException:SQLSTATE [HY000]:常规错误:2006 MySQL服务器已经消失:INSERT INTO (uid,类型,消息,变量,严重性,链接,位置,引用,主机名,时间戳)VALUES(: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:!%函数中的消息(%文件的行%行) . [:db_insert_placeholder_3] => a:6:{ s:5:“%type”; s:12:“PDOException”; s:8:“!message”; s:235:“SQLSTATE [HY000]:一般错误:2006 MySQL服务器已经消失:SELECT 1 AS表达式FROM 变量WHERE((name =:db_condition_placeholder_0)); Array([:db_condition_placeholder_0] => drupal_css_cache_files)“; s:9:”%function“; s:14:”variable_set()“; s:5: “%文件”; S:45: “/家庭/网络/信息通信技术的网站/包含/ bootstrap.inc”; S:5: “%线”; I:991; S:14: “severity_level”; 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()中(/home/www/icts-website/modules/dblog/dblog.module的第160行) .

Uncaught exception thrown in shutdown function.

PDOException:SQLSTATE [HY000]:常规错误:2006 MySQL服务器已经消失:DELETE FROM WHERE(value =:db_condition_placeholder_0); lock_release_all()中的数组([:db_condition_placeholder_0] => 399784779561c9655b48719.42544548)(/home/www/icts-website/includes/lock.inc的第269行) .

我搜索了解决方案,并且还将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 .

2 回答

  • 1

    是的,此错误与解析大量数据有关,因此数据库失败,因为它由于给定的限制而无法处理此类大小,因此服务器超时并关闭连接 .

    要解决此问题,您需要在 my.cnf 部分的 my.cnf (例如 ~/.my.cnf )中进一步提高 max_allowed_packet 的值,例如:

    [mysqld]
    max_allowed_packet=256M
    

    尝试 256M ,如果没有帮助,请尝试进一步增加(例如 1G ) .

    在您的情况下,我认为 max_allowed_packet 应特别在 [mysqld] 部分,而不是在 [mysqld_safe] 下,因此设置应用于正确的组件 .

    有关更多详细信息,请参阅:B.5.2.9 MySQL server has gone away .

    另一件事是在这种特殊情况下,它发生在关闭函数中(这是在Drupal完成站点处理之后),因此它可能与某些cron或调试任务有关 .

  • 3

    看起来你的my.cnf缺少一些可能有用的InnoDB条目

    innodb_buffer_pool_size = 256M
    innodb_additional_mem_pool_size = 10M
    innodb_lock_wait_timeout = 180
    

    我的MySQL配置中有这些额外的行 . 它可能是也可能不是你的解决方案,但绝对值得一试 . 如果这没有用,请告诉我 . 您可能需要稍微调整这些值,具体取决于您的环境 .

    • 在更改my.cnf后不要忘记重启MySQL .

相关问题