3

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

例如,我将使用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

4

2 回答 2

3

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

于 2013-09-26T02:38:44.600 回答
1

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

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

#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

于 2013-09-26T00:56:40.187 回答