我想将我的 Django 应用程序(托管在 VPS 上)连接到托管在另一台具有更多内存的服务器上的数据库,这样我就可以运行内容并向数据库添加内容,而不会有因使用过多内存而被杀死的风险在我的 VPS 上。我所看到的关于此的事情(例如 How to connect to MySQL server on another host? )都涉及编辑 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'
,然后授予
该用户权限。我尝试过,但当我尝试 mysql -u username - 时,我不断收到
。ERROR 2003 (HY000): Can't connect to MySQL server on '(the server's address)' (110)
p -h(服务器地址)
我可以访问 MySQL 的 root
用户,但在我想要设置数据库的服务器上没有其他管理员权限。有没有什么方法可以进行配置,以便 Django 可以访问此远程数据库而无需直接编辑 /etc/mysql/my.cnf
?
最佳答案
bind-address
并不指定哪些 IP 可以连接到该服务器,而是指定 MySQL 监听哪个地址。因此,只需将其设置为 0.0.0.0 即可。请确保您拥有使用该地址的用户帐户。检查mysql.user
表。
解决 root 访问问题: * 如果你手动安装了 mysql,你就拥有 root 访问权限。 * 如果你没有手动安装mysql,但它是VPS托管提供的服务,那么绑定(bind)地址应该是0.0.0.0(或者至少不是127.0.0.1)。如果情况并非如此,请联系他们,因为他们搞砸了。
希望有帮助。
编辑、澄清:
MySQL bind-address
不是安全约束。如果您想允许某些地址连接到服务器,您应该创建/授予指定该地址的用户,如下所示
CREATE USER 'bobdole'@'192.168.10.221';
关于mysql - 无需编辑my.cnf即可访问远程MySQL服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409331/