远程 MySql 连接的访问​​被拒绝

Access denied for remote MySql connection

我最近构建了一个 PHP API(基于 Slim)以允许我的 Android 应用程序远程访问 MySql 数据库。

API 中的所有内容都经过测试并准备好在本地运行,但现在我已将其上传到服务器,我不断收到 "Access denied for user 'user'@'box431.bluehost.com' (using password: YES)" 错误,其中 'user' 是我正确的数据库用户名。

我尝试删除该用户并创建一个拥有所有权限的新用户,但无济于事,我的配置文件中的凭据 - 数据库名称、用户名、密码和主机 - 也是正确的。 BlueHost 无法进一步帮助我,所以现在我转向 SO 寻求帮助。

知道还有什么问题吗??我真的只知道如何通过 cPanel 访问所有这些实用程序,因此通过该视图执行此操作的任何建议(或如果需要硬编码更改的指导)都会有所帮助。

谢谢!

我不确定如何使用 cPanel 实现此目的,但我认为您出错的地方是 mySQL 用户尚未配置为远程访问。您可以在 mySQL CLI 中使用以下语法。

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

您需要执行以下操作;

FLUSH PRIVILEGES;

正如 Giles 在他的评论中指出的那样,这并不是特别安全,您最好创建一个 Web 服务来操作数据库。

事实证明,解决方案非常简单!我的配置文件将主机名设置为实际 IP 地址,但鉴于 Web 服务和数据库驻留在同一台服务器上,它应该是 "localhost"。呃。希望这个小细节至少对其他人有帮助!