我已经在我的Mac上设置了MNPP(NAMPx版本的XAMPP),但无法确定如何连接到不是localhost的数据库。我在EC2实例上有一个MySQL数据库,我想连接到它。
我正在使用Codeigniter / PHP并且以下配置有效:
$db['default']['hostname'] = "localhost";
$db['default']['password'] = "";
以下 NOT 工作:
$db['default']['hostname'] = "mysite.com"; //the name of my EC2 instance
$db['default']['password'] = "my_password";
我可以使用MySQL GUI,Sequel Pro,使用上面的配置和我的EC2 SSH密钥(~/.ssh/mysite.pem
)连接到这个EC2数据库,我无法通过我的本地主机上的PHP应用程序以编程方式执行此操作
我是否需要更改my.cnf文件或其他任何地方的任何内容才能使其正常工作?
答案 0 :(得分:2)
确保您的主机正在侦听TCP 3306。
您还需要为要在数据库上授予的新主机上的用户设置权限。
在远程数据库上,运行:
GRANT ALL ON foo.* TO username@'your-ip-address-here' IDENTIFIED BY 'PASSWORD';
将your-ip-address-here
替换为localhost的公共IP,将username和PASSWORD替换为您各自的值。
这将允许您的应用程序通过MySQL与远程主机通信。这些应用程序不直接支持SSH隧道。
或者,您可以创建一个SSH隧道,它将您的localhost:3307
桥接到remotehost:3306
,然后在您的应用程序中,您仍然可以使用localhost,但将mysql端口更改为{{1 }}。