基本上,我需要连接到不同域上的另一个数据库。
例如,我将使用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
的端口吗?
答案 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]
是用户的密码。