Аутентификация и привилегии MySQL с PHP-сервером на другом компьютере - PullRequest
0 голосов
/ 15 марта 2012

Я отделяю веб-сервер 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 (...).

1 Ответ

0 голосов
/ 15 марта 2012

После предоставления привилегий пользователю вы должны использовать FLUSH PRIVILEGES;

вам понадобится привилегии FLUSH для завершения процесса.

~ K

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