远程mysql连接

时间:2009-03-22 12:46:20

标签: mysql connection connect

我一直在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: 

感谢您的帮助

2 个答案:

答案 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前端来完成所有这些工作。我更喜欢命令行。