【问题标题】:cannot connect to mysql database ubuntu 20.4 (VPS) "ModuleNotFoundError: No module named 'MySQLdb'"无法连接到 mysql 数据库 ubuntu 20.4 (VPS) \"ModuleNotFoundError: No module named \'MySQLdb\'\"
【发布时间】:2023-02-15 10:22:03
【问题描述】:

我正在设置我的第一个非托管 vps(ubuntu 20.4)并按照文档将我的 django 站点连接到 mysql 服务器“https://www.digitalocean.com/community/tutorials/how-to-create-a- django-app-and-connect-it-to-a-database"

能够设置

  1. python/django/virtualenv
  2. mysql 服务器 - 从我本地机器上的 mysql workbench 测试 - 好的
  3. apache2 工作正常。能够使用 sqlite3 看到欢迎屏幕。

    现在转移到mysql。我尝试了两种方式('ENGINE':'django.db.backends.mysql'和选项文件'/etc/mysql/my.cnf'从django项目连接到mysql服务器。

    没有任何替代方案有效。激活virtualenv,使用安装mysqldb

    a) sudo apt install libmysqlclient-dev default-libmysqlclient-dev b) pip 安装轮 c) pip 安装 mysqlclient

    尝试迁移时遇到以下错误。尝试了 stackoverflow 上可用的所有选项,我发现它们都不起作用。

    错误:“ (envFusion) worker@server:~/fusion/fusionerp$ python manage.py makemigrations 追溯(最近一次通话): 文件“/home/worker/fusion/envFusion/lib/python3.8/site-packages/django/db/backends/mysql/base.py”,第 15 行,在 导入 MySQLdb 作为数据库 ModuleNotFoundError:没有名为“MySQLdb”的模块 上述异常是以下异常的直接原因: . . 文件“/home/worker/fusion/envFusion/lib/python3.8/site-packages/django/db/backends/mysql/base.py”,第 17 行,在 提高配置不当( django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错。 你安装mysqlclient了吗? “

【问题讨论】:

    标签: mysql django ubuntu vps


    【解决方案1】:

    对于 ubuntu 20.04,默认的 python 版本是 3.8,使用 3.8 连接到 mysql 有点挑战,因此如果您要重新开始,则需要将 python 降级到 3.6 或降级到 ubuntu 18。

    找到了一个使用替代品降级的教程并且它有效。但是在我需要 python >= 3.7 的地方有我的其他依赖项。所以我别无选择,只能在 vps 上刷新我的 ubuntu 20.04 并配置了 postgres。它比我预期的 apache2/restframework/redis 工作得更好。

    【讨论】:

      【解决方案2】:

      我想我有解决这个问题的方法,所以当我们使用 Ubuntu 操作系统时,我认为我们需要运行下一个命令来处理该包:

      sudo apt-get install default-libmysqlclient-dev -y
      sudo apt-get install gcc -y
      pip3 install mysqlclient

      即使您已经尝试过第一个,它也可能会奏效。我在我的 GitHub 中有一个 Django 应用程序的 Dockerfile,如果你想稍后测试它以查看它是否在你的机器上工作,我花了一周时间才找到问题并将这个应用程序部署到 Oracle Cloud 因为这个错误。

      Dockerfile

      【讨论】:

        猜你喜欢
        • 2017-11-16
        • 2022-12-27
        • 2022-12-27
        • 2022-12-19
        • 2020-02-10
        • 1970-01-01
        • 1970-01-01
        • 2022-08-24
        • 2022-10-17
        相关资源
        最近更新 更多