#php #mysql #symfony
#php #mysql #symfony
Вопрос:
У меня проблема с подключением к базе данных mysql8, php7.3 и Symfony 5. Пользователь и пароль верны!
Подключение к базе данных MySQL8 должно выполняться из SSH-туннеля
SSH-туннель работает :
ssh -p [remote_machine_port] -N -L [mysql_tunnel_port]: 127.0.0.1: 3306 -i / [directory] / private_key [username] @ [remote_machine_ip]
Конфигурация доступа к MySQL:
GRANT ALL PRIVILEGES ON 'databasename'.* TO '[user]'@'%' WITH GRANT OPTION;
Конфигурация доктрины :
DATABASE_URL='mysql://[user]:[password]@127.0.0.1:[port_tunnel_mysql]/[databasename]'
An exception occurred in driver: SQLSTATE [HY000] [1130] Host '127.0.0.1' is not allowed to connect to this MySQL server
У меня такая же проблема с HeidiSQL и на виртуальной машине
Я попробовал с IP виртуальной машины вместо 127.0.0.1
ssh -p [port_machine_distant] -N -L [port_tunnel_mysql]:[ip_machine_vm]:3306 -i /[directory]/private_key [username]@[ip_machine_distant]
Конфигурация доктрины
DATABASE_URL='mysql://[user]:[password]@[ip_machine_vm]:[port_tunnel_mysql]/[databasename]'
An exception occurred in driver: SQLSTATE [HY000] [2002] Connection refused
Однако этот параметр работает с HeidiSQL, но не с приложением Symfony!
Я забыл настройку на виртуальной машине или Mysql?
Комментарии:
1. Если у вас такая же проблема с использованием других инструментов, я бы предположил, что базовая конфигурация неисправна, и это никоим образом не связано с PHP или Symfony
2. Да для настроек 127.0.0.1, но когда я использую ip виртуальной машины, я могу подключиться к heidsql, но не к приложению Symfony
3. Вы можете подключиться через командную строку, без Symfony или PHP?
4. Да, командная строка работает … mysql -u [user] -p
5. Но командная строка mysql -h127.0.0.1 -u [user] -p возвращает ошибку: хосту ‘127.0.0.1’ не разрешено подключаться к этому серверу MySQL
Ответ №1:
проблема с подключением 127.0.0.1: мы создали права ‘[user]’ @ ‘127.0.0.1’. В MySQL 127.0.0.1 использует сеть, а localhost использует сокет.
Сообщение «Сервер запросил метод аутентификации, неизвестный клиенту [caching_sha2_password]» было вызвано тем, что настройка ‘default-authentication-plugin=mysql_native_password’ была создана после создания прав. Мы восстановили права, и теперь все работает нормально.