将Django应用程序上的mysql数据库部署到生产服务器[重复]

Posted

技术标签:

【中文标题】将Django应用程序上的mysql数据库部署到生产服务器[重复]【英文标题】:Deploying mysql database on a django app to production server [duplicate] 【发布时间】:2016-08-04 11:32:42 【问题描述】:

我正在尝试在共享主机上部署 django 应用程序。我目前在部署应用程序时遇到问题,尤其是 mysql 数据库。我已经在生产服务器上创建了 mysql 数据库。但是当尝试运行manage.py collectstatic 命令时,我收到以下附加错误。我假设它与 mysqldb 库有关。

    我不知道该怎么做。部署这个 mysql 数据库 我应该将哪个 ip 地址放在 settings.py 文件中 db 配置的主机部分。是我的生产服务器 IP 地址吗?

请多多包涵,我是 django 的新手,尤其是部署部分。在 django 部署文档中找不到足够的信息。

这是我在生产服务器上遇到的错误:

    Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "/opt/python27/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/contrib/auth/models.py", line 4, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 49, in <module>
    class AbstractBaseUser(models.Model):
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/models/base.py", line 108, in __new__
    new_class.add_to_class('_meta', Options(meta, app_label))
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/models/base.py", line 307, in add_to_class
    value.contribute_to_class(cls, name)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/models/options.py", line 263, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/utils.py", line 212, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/utils.py", line 116, in load_backend
    return import_module('%s.base' % backend_name)
  File "/opt/python27/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home4/techaven/mydjango/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 28, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

【问题讨论】:

【参考方案1】:

这是一个重复的问题。你有你的答案>>No module named MySQLdb

正如您在日志中看到的:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

【讨论】:

所以我也应该在生产服务器上安装mysql-python? 是的。无论你在哪里使用 mysql,你都需要 django 的包

以上是关于将Django应用程序上的mysql数据库部署到生产服务器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Apache/MySQL 上的 Django 内存泄漏

将 Django 连接到 VPS 上的 MySql 数据库

将 Django 模型部署到网络服务器后,如何对其进行更改?

Django 2021年最新版教程30django项目部署到华为云(nginx uWSGI mysql方式)

Elastic Beanstalk 上的 Docker + Django

nginx+uwsgi+python3+pipenv+mysql+redis部署django程序