Недавно я создал PHP API (Slim-based), чтобы позволить моему Android-приложению получать удаленный доступ к базе данных MySql.
Все в API протестировано и готово к локальному использованию, но теперь, когда я загрузил его на сервер, я продолжаю получать «Доступ запрещен для пользователя ‘user’@’box431.bluehost.com’ (используя пароль: ДА)» ошибка, где ‘user’ — мое правильное имя пользователя базы данных.
Я попытался удалить этого пользователя и создать нового, который имеет все разрешения, но безрезультатно, и учетные данные в моем конфигурационном файле — имя базы данных, имя пользователя, пароль и хост — также верны. BlueHost больше не может мне помочь, поэтому теперь я обращаюсь к SO за помощью.
Есть идеи, что еще может быть не так ?? Я действительно знаю только, как получить доступ ко всем этим утилитам через cPanel, поэтому любой совет, делающий это через это представление (или руководство, если необходимы жестко запрограммированные изменения), будет полезен.
Спасибо!
Как оказалось, решение было довольно простым! В моем конфигурационном файле имя хоста было установлено на фактический IP-адрес, но это должен был быть «localhost», учитывая, что веб-сервис и база данных находятся на одном сервере. Duh. Надеюсь, что эта маленькая деталь, по крайней мере, полезна для всех остальных!
Я не уверен, как добиться этого с помощью cPanel, но я думаю, что вы ошибаетесь, если пользователь mySQL не настроен для удаленного доступа. Вы можете использовать следующий синтаксис с mySQL CLI.
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'YourPassword' WITH GRANT OPTION;
Вы должны будете следовать этому со следующим;
FLUSH PRIVILEGES;
Как Джайлс указал в своем комментарии, это не особо безопасно, вам лучше создать веб-сервис для управления базой данных.