0

我一直在本地主机上创建一个网络,当我尝试将它移动到主机上时,它显示了很多错误。好像它无法连接到我的本地数据库。这是代码:

$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: 

感谢帮助

4

2 回答 2

4

这是一个mysql用户权限问题。例如,使用 phpmyadmin 创建一个新用户,如果从 localhost 连接,则将其主机设置为 localhost,如果从外部连接,则将其设置为 %。

于 2009-03-22T12:53:40.007 回答
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 地址(您的 Web 服务器?) your_password:是您在 PHP 端建立连接时必须使用的地址

还要记住,即使此解决方案应该可以工作,也不建议将所有权限授予将由 Web 应用程序使用的用户。你可以用更少的权限做同样的事情。

您可以使用一个不错的 GUI 前端来完成所有这些工作。我更喜欢命令行。

于 2009-03-22T12:59:46.497 回答