2

我已经在我的 Mac 上设置了MNPP(XAMPP 的 Nginx 版本),但不知道如何连接到不是 localhost 的数据库。我想连接到一个 EC2 实例上的 MySQL 数据库。

我正在使用 Codeigniter/PHP 并且以下配置有效:

$db['default']['hostname'] = "localhost"; 
$db['default']['password'] = "";

以下不起作用

$db['default']['hostname'] = "mysite.com"; //the name of my EC2 instance
$db['default']['password'] = "my_password";

~/.ssh/mysite.pem我可以使用 MySQL GUI、Sequel Pro、上面的配置和我的 EC2 SSH 密钥(

我是否需要更改 my.cnf 文件或其他任何地方的任何内容才能使其正常工作?

4

1 回答 1

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 端口更改为3307.

于 2012-09-13T16:26:53.080 回答