Недавно я создал PHP API (на основе Slim), чтобы мое приложение Android могло удаленно обращаться к базе данных MySql.

Все в API протестировано и готово к работе локально, но теперь, когда я загрузил его на сервер, я продолжаю получать «Доступ запрещен для пользователя 'user'@'box431.bluehost.com' (с паролем: ДА)» ошибка, где "пользователь" - мое правильное имя пользователя базы данных.

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

Есть идеи, что еще может быть не так? На самом деле я знаю только, как получить доступ ко всем этим утилитам через cPanel, поэтому любые советы, как сделать это через это представление (или руководство, если требуются жестко запрограммированные изменения), были бы полезны.

Благодарность!

0
notchopra 10 Мар 2015 в 18:28

2 ответа

Лучший ответ

Как оказалось, решение было довольно простым! В моем конфигурационном файле в качестве имени хоста был установлен фактический IP-адрес, но он должен был быть «localhost», учитывая, что веб-служба и база данных находятся на одном сервере. Ага. Надеюсь, эта маленькая деталь по крайней мере будет полезна для всех остальных!

1
notchopra 11 Мар 2015 в 03:04

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

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'YourPassword' WITH GRANT OPTION;

Вам нужно будет выполнить это следующим образом:

FLUSH PRIVILEGES;

Как указал Джайлз в своем комментарии, это не особенно безопасно, вам лучше создать веб-службу для управления базой данных.

0
SuperCabbage 10 Мар 2015 в 16:01