Я отделяю веб-сервер PHP и перемещаю свою базу данных MySQL в другую коробку.На самом деле два экземпляра на AWS.
Я могу подключиться как пользователь к новой коробке MySQL, но не могу выполнить какие-либо запросы.
В MySQL:
CREATE USER 'username'@'ip address' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username'@'ip address' IDENTIFIED BY 'password';
** изменено на GRANT ALL для тестирования, чтобы убедиться, что не было проблем с ограничением
Проверенный пользователь
mysql> SELECT user, host, password FROM mysql.user;
| username | ip address | *... |
mysql> show grants for 'username'@'ip address'
+-----------------------------------------------------------------------------------------------------------------+
| Grants for username'@'ip address |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'ip address' IDENTIFIED BY PASSWORD '*...' |
| GRANT ALL PRIVILEGES ON `dbname`.* TO 'username'@'ip address' |
+-----------------------------------------------------------------------------------------------------------------+
Когда я пытаюсь открыть страницу PHP, извлекая информацию из базы данных, я получаю
Invalid authorization specification: 1045 Access denied for user
'username'@'ip address' (using password: YES)
Все отлично работает на той же самой коробке, и я знаю, что пользователь подключается из Интернета к серверу базы данных, как это былоне работает, пока я не открыл порты на коробке базы данных.Я понимаю, что аутентификация MySQL проходит через процесс при проверке учетных данных, но я не смог отследить это.
Есть ли какой-то другой процесс, который мне нужно сделать также?
У этого нового блока базы данных не было файла my.cnf, поэтому я создал его, перезапустил MySQL просто отлично.Если я добавлю bind-address = ip address
, MySQL не запустится, и я получу ошибку Starting MySQL... ERROR! The server quit without updating PID file (...)
.