如何连接到另一个域上的MySQL数据库?

时间:2013-09-26 00:43:42

标签: php mysql

基本上,我需要连接到不同域上的另一个数据库。

例如,我将使用domain1和需要连接的域,并使用domain2作为拥有数据库的域。

我试过了:

mysql_connect("domain2.com.au", "user", "pass") or die(mysql_error());

mysql_select_db("database") or die(mysql_error());

虽然,这拒绝工作。

我在网上找了很长时间才找到解决方案,其中很多都涉及登录我不熟悉的SSH,我想避免这种方法。


如果需要,这是我的错误(一些为隐私而修改的内容):

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'host.com' (using password: YES) in /php/2012.php on line 270
Access denied for user 'user'@'host.com' (using password: YES)

我是否有必须在我的数据库中更改以允许从其他域访问的选项?如果是这样,这究竟在哪里?

我需要连接到domain2.com.au:3307的端口吗?

2 个答案:

答案 0 :(得分:3)

如果您使用的是共享主机,则会被禁用。您可以尝试通过联系您的支持部门来启用它,或者如果您有cPanel x3,请转到MySQL部分的远程数据库部分。

答案 1 :(得分:1)

您需要在domain2的MySQL服务器上启用远程访问。

打开您的my.cnf文件(基于debian的linux的/etc/mysql/my.cnf),并确保删除或评论该行:

#skip-networking

并添加或编辑此行:

bind-address=[YOUR SERVER's EXTERNAL IP]

之后重启你的mysql服务。

/etc/init.d/mysql restart 

service mysql restart

然后,您需要授予对数据库的远程访问权限。打开mysql控制台:

mysql -u root –p mysql

mysql> GRANT ALL ON [DB].* TO '[USER]'@'[IP]' IDENTIFIED BY '[PASSWORD]';
mysql> exit

[DB]是数据库,[USER]是mysql用户名,[IP]是服务器的外部IP地址,[PASSWORD]是用户的密码。

http://dev.mysql.com/doc/refman/5.1/en/grant.html