我在尝试连接到数据库时收到"拒绝访问"错误。这是代码:
<?php
mysql_connect("00.00.00.00:00000","user","pass");
mysql_select_db("dbname");
$q=mysql_query("CALL GetMaterialInfo('".$_REQUEST['user']."','".$_REQUEST['pass']."','6c3e91d3')");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
我当然更改了主机的IP地址(不全是零)以及用户名和密码以及数据库名称。我确定用户和密码,作为主机 ip 和端口号以及数据库名称是正确的。我设法使用 JDBC 连接器连接到数据库,但它通过 PHP 脚本给出以下错误:
<b>Warning</b>: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'username'@'192.168.1.1' (using password: YES) in <b>/www/zxq.net/t/e/s/testphpbach/htdocs/Connection.php</b> on line <b>2</b><br />
您需要执行以下检查:
- 检查/etc/hosts 中是否包含 192.168.1.1。如果您的数据库位于本地主机 上,请尝试使用本地主机而不是 ip。
- 检查端口是否打开。尝试使用远程登录(例如 ip/本地主机) .例如 telnet localhost 2222
- 检查数据库是否具有授予的用户名和密码权限。要检查权限,请使用
SHOW GRANTS [FOR user]
。更多信息可以在这里找到如果这些都不起作用,也许尝试使用默认用户以外的其他用户。
让知道会发生什么
您可能使用
与phpmyadmin相同的用户名/密码成功登录,但如果主机不是本地主机,则无法从PHP登录。我有同样的问题。转到 mysql 并授予该用户从所有主机登录的权限 (%),或您运行 php 代码的特定主机的 IP。
加夫里尔,你救了我一个受伤的世界。
我之前收到 mysql 错误消息"用户访问被拒绝..."
我在 php 中的远程访问问题的解决方案是授予对 cPanel '%' 中所有主机的访问权限
另外,要弄清楚您的 mysql 虚拟主机和端口,请在您的数据库上执行 sql 命令"显示变量"。 变量"主机名"和"端口"将告诉您有关 MySQL 数据库连接需要了解的内容。
需要注意的另一件事是确保您创建的用户实际添加到数据库中。