【问题标题】:Django Operational error on external db connection外部数据库连接上的 Django 操作错误
【发布时间】:2018-08-27 10:43:50
【问题描述】:

我正在使用 Azure Virtual Machineubuntu server

我将ssh 安装到机器中并安装了一个灯服务器(还有phpmyadmin,所以我可以通过浏览器查看我的数据库并执行操作)。 我的django 项目正在我的macbook 上运行。

我尝试使用文档和其他 stackoverflow 问题中解释的方法连接到安装在 django 中的 VM 上的 mysql 数据库,但它们都不起作用。

假设1.2.3.4 是我的虚拟机IP

settings.py

DATABASES = {
    # mysql
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DBname',
        'USER': 'rootuser',
        'PASSWORD': 'rootPassword',
        'HOST': '1.2.3.4',
    },
}

python manage.py runserver的输出:

django.db.utils.OperationalError:
  (2003, "Can't connect to MySQL server on '1.2.3.4' (timed out)")

我需要配置mysql 数据库吗? 1.2.3.4 不是我需要用于数据库连接的同一个 IP 吗?

当我尝试使用pip install mysqlclient 安装mysqlclient 时,它会引发错误:

Command "python setup.py egg_info" failed with error code 1
  in /private/var/folders/st/8qzvdtwx6xsc1w1ffqd2c7br0000gn/T/pip-install-p25gukfh/mysqlclient/

【问题讨论】:

  • 也许你需要指定端口号。还 ?是否设置了正确的入站/出站流量规则?
  • 我试过了,它没有用,端口是 3306,但我从 django 得到同样的操作错误
  • @Umair “交通规则”是什么意思?我需要配置我的路由器还是远程服务器?

标签: python mysql django database


【解决方案1】:

我对@9​​87654322@ 连接有点生疏,但正如this answer 所述:

默认禁用的是远程root 访问。如果要启用它,请运行此 SQL [...]

也许您可以先检查一下以排除这种错误配置。 或者尝试使用不是root 的其他用户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2022-01-23
    • 2012-01-08
    • 2023-01-03
    • 1970-01-01
    • 2019-01-08
    • 2018-12-11
    相关资源
    最近更新 更多