Doctrine \ DBAL \ Driver \ PDOException SQLSTATE [HY000] [2006] MySQL сервер ушел - PullRequest
0 голосов
/ 12 января 2020

У меня есть приложение Laravel 6.2, и до сих пор это базовое c приложение практически из коробки. Я использовал Laravels из коробки auth scaffolding и создал пользователя, и я могу видеть этого пользователя в моей базе данных (mysql workbench). Пользователь создан, но затем я использую команду php artisan serve, затем пытаюсь войти в систему как пользователь, которого я только что создал, браузер зависает примерно на 1 минуту, затем выдает следующую ошибку:

Doctrine\DBAL\Driver\PDOException
SQLSTATE[HY000] [2006] MySQL server has gone away

Я исследовал другие посты, относящиеся к этой команде, проверили мой mysql тайм-аут, и я увеличил пределы, и эта ошибка все еще выводится В чем может быть проблема? Я включаю вывод из mysql, чтобы вы все могли видеть.

SHOW VARIABLES LIKE '%timeout%'; 
+-----------------------------------+----------+
| Variable_name                     | Value    |
+-----------------------------------+----------+
| connect_timeout                   | 10       |
| delayed_insert_timeout            | 300      |
| have_statement_timeout            | YES      |
| innodb_flush_log_at_timeout       | 1        |
| innodb_lock_wait_timeout          | 50       |
| innodb_rollback_on_timeout        | OFF      |
| interactive_timeout               | 31536000 |
| lock_wait_timeout                 | 31536000 |
| mysqlx_connect_timeout            | 30       |
| mysqlx_idle_worker_thread_timeout | 60       |
| mysqlx_interactive_timeout        | 28800    |
| mysqlx_port_open_timeout          | 0        |
| mysqlx_read_timeout               | 30       |
| mysqlx_wait_timeout               | 28800    |
| mysqlx_write_timeout              | 60       |
| net_read_timeout                  | 30       |
| net_write_timeout                 | 60       |
| rpl_stop_slave_timeout            | 31536000 |
| slave_net_timeout                 | 60       |
| wait_timeout                      | 31536000 |
+-----------------------------------+----------+

SHOW STATUS WHERE variable_name = 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 2     |
+-------------------+-------+

SHOW STATUS WHERE variable_name LIKE 'Connections';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 24    |
+---------------+-------+

Mysql Версия

mysql --version
mysql  Ver 8.0.18-0ubuntu0.19.10.1 for Linux on x86_64 ((Ubuntu))

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.058 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.058 ms

1 Ответ

1 голос
/ 12 января 2020

В руководстве php. net есть объяснение:

При использовании версии PHP до 7.1.16 или PHP 7.2 до 7.2 .4, установите MySQL 8 Плагин пароля по умолчанию для сервера на mysql_native_password, иначе вы увидите ошибки, похожие на Запрашиваемый сервером метод аутентификации, неизвестный клиенту [caching_sha2_password], даже если caching_sha2_password не используется.

Это потому, что MySQL 8 по умолчанию - caching_sha2_password, плагин, который не распознается старыми PHP (mysqlnd) релизами. Вместо этого измените его, установив default_authentication_plugin = mysql_native_password в my.cnf. Плагин caching_sha2_password будет поддерживаться в следующем выпуске PHP. В то же время расширение mysql_xdevapi поддерживает его.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...