【发布时间】:2015-09-11 20:24:09
【问题描述】:
希望各位有经验的朋友能帮我解惑!我进行了搜索和研究,发现多个来源讨论了与我试图解决的问题类似的问题,但似乎没有一个能帮助解决这种情况。在没有给出我尝试过的完整历史列表的情况下,这里是目前的情况:
- 我有一个使用 MySql 数据库设置的简单 Debian 服务器。所有相关的防火墙端口都已打开,并且已为 'username'@'mylocalglobalip' 申请了特定的 GRANT PRIVILEGES(用户名不是 root)。
- 在我的本地 Apache 实例(我目前在 OS X 上运行它)上,我安装了最新的 PHP,并且可以正常工作。我已经通过访问 localhost/website/phpinfo.php 确认了这一点 - PHP 本身工作正常。
-
我已经阅读了有关使用 mysqli 设置简单 MySql 连接的所有教程。这是我的简单代码(已删除凭据):
$connection = mysqli_connect($mylocalglobalip,$username,$password,$dbname);无论我尝试过什么,我都会保持友好
"mysqli_connect(): (HY000/1045): 拒绝用户访问 'username'@'mylocalglobalip'(使用密码:YES)”警告。
-
如果我通过 SSH 连接到远程服务器,我可以从我的非 root 登录和 root 登录进入 MySql 控制台。但是,我只有使用...才能登录。
mysql -u username -p... 并在出现提示时提供我的密码。但是,如果我输入...
mysql -u username -pPassword...不走运。我再次收到拒绝访问。
- 最后,为了确保我的防火墙上的所有内容都打开并且我的服务器和 MySql 可以远程访问,我安装了 MySqlWorkbench 的本地实例。我输入了相同的凭据,我可以毫无问题地登录到远程服务器。
为什么我可以通过 Workbench 登录,但不能通过我的本地 PHP 脚本登录?我需要在本地和/或远程配置文件中启用明显的参数吗?从我看过的 php 和 mysql 配置文件中,我看不到任何会阻止 PHP 连接的东西。
我很乐意根据要求提供配置和代码 sn-ps!
感谢阅读!
【问题讨论】:
-
权限被拒绝。您正在连接,但使用了错误的凭据。
-
听起来好像有两个问题,密码中的特殊字符就是其中之一。几乎可以肯定,您在 MySQL 服务器上拥有多个帐户,具有相同的用户名和不同的密码。检查 mysql.user 表。使用
-p'your-password'(单引号,无空格)解决本地问题。 -
感谢迈克尔的提示。您的评论促使我考虑检查我的 PHP 代码中单引号和双引号中的特殊字符!我现在可以睡得更好了。谢谢:)