如何在Django项目中使用MYSQL作为数据库?

3
Django 的默认数据库是 SQLite,但我想使用 MySQL。由于 Python3.x 不支持 MYSQLdb 模块,Django 官方文档建议使用 mysqlclient 和 MySQL Connector/Python 代替。以下为原始文档:
MySQL 有几个实现了 PEP 249 中描述的 Python 数据库 API 的驱动程序: • mysqlclient 是一个本地驱动程序,它是推荐的选择。 • MySQL Connector/Python 是来自 Oracle 的纯 Python 驱动程序,不需要 MySQL 客户端库或任何 Python 标准库之外的 Python 模块。 这些驱动程序是线程安全的,并提供连接池。除了一个 DB API 驱动程序,Django 还需要一个适配器来访问其 ORM 中的数据库驱动程序。Django 为 mysqlclient 提供了适配器,而 MySQL Connector/Python 则包含了自己的适配器。
我已经获得了最新版本的mysql-client和mysql-connector-python,但在执行 migrate 命令时出现了错误。以下是部分消息:
Unhandled exception in thread started by .wrapper at 0x7f2112e99d90> Traceback (most recent call last): File "/home/lothakim/anaconda3/envs/py36/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 15, in
import MySQLdb as Database ModuleNotFoundError: No module named 'MySQLdb' django.
.........
core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
看起来是数据库连接的问题。但我遵循了官方教程的每一个步骤。如何解决这个问题?

你是否已经安装了MySQLdb?可以通过pip install mysqlclient来进行安装。 - Rakesh
3
请展示您的DATABASES设置。 - Daniel Roseman
1
请注意,mysql-clientmysqlclient 是两个不同的东西。 - Burhan Khalid
1个回答

1
这是一个愚蠢的错误...我混淆了mysql-clientmysqlclient。前者是MYSQL应用程序的一部分,而后者是Python模块。我没有安装后者。
还要注意,在pip install mysqlclient之前,您应该sudo apt-get install libmysqlclient-dev

不要觉得傻,数据库空间中的包命名非常令人困惑。 :) - FlipperPA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接