0

我想将我的 Django 应用程序(托管在 VPS 上)连接到托管在另一台具有更多内存的服务器上的数据库,这样我就可以运行东西并将东西添加到数据库中,而不会因为在我的 VPS 上使用太多内存而导致它被杀死. 我看到的关于这个的事情(例如,如何连接到另一台主机上的 MySQL 服务器?)都涉及编辑my.cnf和更改bind-address行。我 a) 没有执行此操作的 root 权限,并且 b) 不想将其他用户的 MySQL 数据库暴露于潜在的安全风险中。我试图编辑~/.my.cnf来改变这bind-address件事,但这似乎不起作用。

我还找到了http://www.rackspace.com/knowledge_center/article/mysql-connect-to-your-database-remotely,它建议创建'user'@'remote-ip-address'然后granting 该用户权限。我试过了,但是ERROR 2003 (HY000): Can't connect to MySQL server on '(the server's address)' (110)当我尝试的时候我不断得到mysql -u username -p -h (the server's address)

我可以访问rootMySQL 用户,但在我要设置数据库的服务器上没有其他管理员权限。有什么方法可以配置东西,让 Django 无需直接编辑就可以访问这个远程数据库/etc/mysql/my.cnf

4

2 回答 2

1

bind-address没有指定哪些 IP 可以连接到该服务器,但 MySQL 正在侦听哪个地址。因此,只需将其设置为 0.0.0.0 即可。请确保您拥有使用该地址的用户帐户。检查mysql.user表。

解决 root 访问问题: * 如果您手动安装了 mysql,那么您就有了 root 访问权限。* 如果你没有手动安装mysql,而是VPS主机提供的服务,那么bind-address应该是0.0.0.0(或者至少不是127.0.0.1)。如果不是这种情况,请联系他们,因为他们搞砸了。

希望能帮助到你。

编辑,澄清:

MySQLbind-address不是安全约束。如果您想允许某些地址连接到服务器,您应该使用指定的地址创建/授予用户,如下所示

CREATE USER 'bobdole'@'192.168.10.221';
于 2013-07-01T16:45:03.593 回答
0

相当hacky,但我认为这应该可以通过MySQL Proxy在公共IP上的非特权端口上侦听,将所有查询代理到本地运行的mysqld。

于 2013-07-01T17:24:05.447 回答