我一直在localhost上创建一个网页,当我试图在主机上移动它时,它显示了很多错误。好像它无法连接到我的本地数据库。这是代码:
$host = "myip";
$user = "root";
$pass = "";
$db = "mydatabase";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$on = mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
echo "<br>Online: $on[0]<br><br>";
这是输出:
Warning: mysql_connect() [function.mysql-connect]: Host 'myip' is not allowed to connect to this MySQL server in * on line 46
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in * on line 48
Online:
感谢您的帮助
答案 0 :(得分:4)
这是一个mysql用户权限问题。例如,使用phpmyadmin创建一个新用户,如果从localhost连接,则将其主机设置为localhost;如果从外部连接,则将其设置为%。
答案 1 :(得分:3)
正如Alekc正确指出的那样,这是一个许可问题:
您可以在MySQL提示符下执行此操作:
grant all privileges on mydatabase.*
to youruser@'your_ip_address'
identified by 'your_password';
接下来是:
flush privileges;
然后尝试重新连接。请记住:
your_ip_adress:它是不 MySQL服务器的IP地址,但是您连接的IP地址(您的网络服务器?) your_password:是在PHP端建立连接时必须使用的那个
还要记住,即使此解决方案应该有效,也不建议向Web应用程序使用的用户授予所有权限。您可以使用较少的权限执行相同操作。
你可以通过一个漂亮的GUI前端来完成所有这些工作。我更喜欢命令行。