• Народ всем привет! Помогите решить проблему с постоянной ошибкой:

    «Ошибка установки соединения с базой данных»

    Ситуация такая, сайт работает. Стоит плагин последней версии WooCommers, послед добавления товары, отправляюсь смотреть каталог, ловлю ошибку: «Ошибка установки соединения с базой данных», в логах так:

    [Tue Jun 25 10:42:50.945209 2019] [:error] [pid 3518] [client 188.162.167.22:7742] PHP Warning:  Error while sending QUERY packet. PID=3518 in /var/www/www-root/data/www/***.ru/wp-includes/wp-db.php on line 2007, referer: http://***.ru/wp-admin/post.php?post=203&action=edit
    [Tue Jun 25 10:42:50.954260 2019] [:error] [pid 3520] [client 188.162.167.22:7734] PHP Warning:  Error while sending QUERY packet. PID=3520 in /var

    Обновляю страницу F5, все показывается и работает. И так периодически постоянно выскакивает эта ошибка.

    Характеристики такие: WP 5.2.2 (последняя версия), BeTheme 21.2.6(последняя версия лицензия).

    Погуглив увеличил: max allowed packet = 524288000 (Значение параметра), 4194304 (значение по умолчанию), в конфиге Mysql= max allowed packet = 16М

    Может нужно значение по умолчанию изменить? просто она в ISP заблокировано, хз как его менять… Подскажите что делать.

Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Народ! Как решить эту проблему с ошибкой базы?

    PHP Warning: Error while sending QUERY packet.

    Сейчас опять висит «Ошибка установки соединения с базой данных»….

    Anonymous User 17160716

    (@anonymized-17160716)

    danilk, приветствую.

    увеличил: max allowed packet = 524288000

    А потом проверяли значение SHOW VARIABLES LIKE 'max_allowed_packet'? Значение wait_timeout? Вообще, увеличивать лимиты — практика скверная.

    Характеристики такие: WP 5.2.2 (последняя версия), BeTheme 21.2.6(последняя версия лицензия).

    Ещё было бы хорошо узнать тип (шаред/впс?) вашего хостинга и некоторые подробности касательно ПО.

    VDS от TimeWeb, Процессор, 2 x 2,4+ ГГц, Оперативная память 1 ГБ, SSD 30 ГБ

    wait_timeout = 28тыс вроде стоит…

    max allowed packet = 524288000 (Значение параметра), 4194304 (значение по умолчанию), в конфиге Mysql= max allowed packet = 16М

    Супер нагруженных проектов на сервере у меня нет, траффик там не большой… если это как-то влияет..

    • Ответ изменён 5 лет, 5 месяцев назад пользователем danilk.
    Anonymous User 17160716

    (@anonymized-17160716)

    danilk,

    wait_timeout = 28тыс вроде стоит

    А уточнить..?

    max allowed packet = 524288000 (Значение параметра), 4194304 (значение по умолчанию), в конфиге Mysql= max allowed packet = 16М

    Это я видел. Какое значение выдаётся на SHOW VARIABLES LIKE 'max_allowed_packet'? (желательно не угадывать, а именно ввести команду и увидеть значение).

    Я конечно извиняюсь за нубский вопрос, где эту команду вводить?

    Anonymous User 17160716

    (@anonymized-17160716)

    danilk, проще всего будет в phpMyAdmin (по идее, вы даже ссылку в меню слева в панели администратора «ISPmanager» увидеть должны), вкладка «SQL» -> кнопка «Go» -> смотрите результат выполнения.

    Получилось сделать запрос, выдает:
    max_allowed_packet 524288000

    В настройках MySql:
    wait_timeout = 28800

    Кстати зашел в phpmyadmin, а там ошибок….

    Скрин: http://joxi.ru/a2XbvytwJnOLrg

    Погуглин, там пишут что это все из за php 7, надо обновлять phpMyadmin, может быть это как-то влияет…

    Anonymous User 17160716

    (@anonymized-17160716)

    danilk,

    Кстати зашел в phpmyadmin, а там ошибок….

    На главной странице посмотрите версию phpMyAdmin. В самом верху, где «хлебные крошки», кликните на «Сервер: MySQL», на открывшейся странице будет справа колонка с информацией о версии.

    Получилось сделать запрос, выдает:
    max_allowed_packet 524288000

    В настройках MySql:
    wait_timeout = 28800

    Наглядная демонстрация, что увеличение ресурсов без вникания в суть проблемы — плохая практика (524288000 — 500Мб, 28800 — 8 часов, что, очевидно, избыточно). Вы сервер настраивали сами или уже получили в готовом виде?

    Сервер на TimeWeb, настроил только то что требовала тема, увеличил только параметры по требованию платной темы… max_allowed_packet и wait_timeout увеличил, так как думал решить проблему с Ошибкой базы данных. Кстати сейчас у меня все так же. Постоянно это ошибка выдается. Добавляю новость ошибка, сохраняю пост ошибка.

    Сейчас вот рекомендуют увеличить MYSQL_ATTR_MAX_BUFFER_SIZE :)) Не знаю поможет или нет, но буду пробовать, пока не нашел, где этот параметр увеличить…

    Модератор Юрій

    (@yube)

    Оперативная память 1 ГБ,

    Вот это может быть узким местом. Посмотрите, сколько занято|свободно на «холостом ходу» (в консоли системы команда top или htop)

    Модератор Yui

    (@fierevere)

    永子

    Вы очень сильно накрутили в конфигах, значения по умолчанию (автоопределение) обычно работает корректно для большинства конфигураций

    показывайте ваш my.cnf

    #
    # The MySQL database server configuration file.
    #
    # You can copy this to one of:
    # - "/etc/mysql/my.cnf" to set global options,
    # - "~/.my.cnf" to set user-specific options.
    # 
    # One can use all long options that the program supports.
    # Run program with --help to get a list of available options and with
    # --print-defaults to see which it would actually understand and use.
    #
    # For explanations see
    # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
    
    # This will be passed to all mysql clients
    # It has been reported that passwords should be enclosed with ticks/quotes
    # escpecially if they contain "#" chars...
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
    
    # Here is entries for some specific programs
    # The following values assume you have at least 32M ram
    
    [mysqld_safe]
    log-error=/var/log/mysql.log
    socket		= /var/run/mysqld/mysqld.sock
    nice		= 0
    
    [mysqld]
    collation-server = utf8_general_ci
    character-set-server = utf8
    local-infile=0
    innodb_file_per_table = 1
    #
    # * Basic Settings
    #
    user		= mysql
    pid-file	= /var/run/mysqld/mysqld.pid
    socket		= /var/run/mysqld/mysqld.sock
    port		= 3306
    basedir		= /usr
    datadir		= /var/lib/mysql
    tmpdir		= /tmp
    lc-messages-dir	= /usr/share/mysql
    skip-external-locking
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address		= 127.0.0.1
    #
    # * Fine Tuning
    #
    key_buffer_size		= 16M
    max_allowed_packet	= 16M
    thread_stack		= 192K
    thread_cache_size       = 8
    # This replaces the startup script and checks MyISAM tables if needed
    # the first time they are touched
    myisam-recover-options  = BACKUP
    #max_connections        = 100
    #table_cache            = 64
    #thread_concurrency     = 10
    #
    # * Query Cache Configuration
    #
    query_cache_limit	= 1M
    query_cache_size        = 32M
    #
    # * Logging and Replication
    #
    # Both location gets rotated by the cronjob.
    # Be aware that this log type is a performance killer.
    # As of 5.1 you can enable the log at runtime!
    #general_log_file        = /var/log/mysql/mysql.log
    #general_log             = 1
    #
    # Error log - should be very few entries.
    #
    log_error = /var/log/mysql/error.log
    #
    # Here you can see queries with especially long duration
    #log_slow_queries	= /var/log/mysql/mysql-slow.log
    #long_query_time = 2
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    # note: if you are setting up a replication slave, see README.Debian about
    #       other settings you may need to change.
    #server-id		= 1
    #log_bin			= /var/log/mysql/mysql-bin.log
    expire_logs_days	= 10
    max_binlog_size   = 100M
    bind-address = ::
    max-allowed-packet = 524288000
    query-cache-type = ON
    max-user-connections = 200
    #binlog_do_db		= include_database_name
    #binlog_ignore_db	= include_database_name
    #
    # * InnoDB
    #
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
    # Read the manual for more InnoDB related options. There are many!
    #
    # * Security Features
    #
    # Read the manual, too, if you want chroot!
    # chroot = /var/lib/mysql/
    #
    # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
    #
    # ssl-ca=/etc/mysql/cacert.pem
    # ssl-cert=/etc/mysql/server-cert.pem
    # ssl-key=/etc/mysql/server-key.pem
    Модератор Yui

    (@fierevere)

    永子

     
    [mysqld_safe]
    log-error=/var/log/mysql.log
    socket		= /var/run/mysqld/mysqld.sock
    nice		= -15
    
    [mysqld]
    collation-server = utf8_general_ci
    character-set-server = utf8
    local-infile=0
    user		= mysql
    pid-file	= /var/run/mysqld/mysqld.pid
    socket		= /var/run/mysqld/mysqld.sock
    port		= 3306
    basedir		= /usr
    datadir		= /var/lib/mysql
    tmpdir		= /tmp
    lc-messages-dir	= /usr/share/mysql
    skip-external-locking
    
    bind-address		= 127.0.0.1
    max_allowed_packet	= 16M
    thread_cache_size       = 4
    myisam-recover-options  = BACKUP
    table_open_cache = 256
    query_cache_limit       = 256K
    query_cache_size        = 16M
    max_connections          = 64
    

    попробуйте сохранить ваш файл как бэкап и заменить его этим.
    также проверьте место выделенное для /tmp, особенно если папка монтируется как отдельный раздел

    Поменял, перезапустил Апач, вроде пока все работает.

    Менеджер файлов говорит, что папка пустая /var/www/www-root/data/tmp/

    Сейчас активно работаю на сайте, позже напишу результат.

    • Ответ изменён 5 лет, 4 месяца назад пользователем danilk.
Просмотр 15 ответов — с 1 по 15 (всего 18)
  • Тема «Ошибка установки соединения с базой данных — WooCommers» закрыта для новых ответов.