mysql - 无需编辑my.cnf即可访问远程MySQL服务器

标签 mysql django

我想将我的 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/

相关文章:

php - 仅抓取 jpg 文件图像

mysql - fatal error : Class 'Hash' not found, CakePhp-2

php - 从公共(public)范围获取变量以连接数据库第 2 部分

django - 如何在运行时创建 celery 队列,以便工作人员接收发送到该队列的任务?

python - Django:分配外键 - 无法获得类的代表

django - 在 Django 中注释 value() 查询

php - MYSQL转义字符串实现

MySQL - 在更新时使用动态 sql

python - 在生产过程中 Django 管理站点会发生什么?

python - 我可以在 Python 2.7 上运行一些 mod_wsgi 应用程序,而将其余应用程序保留在 Python 2.5 上吗?