如何在django中使用mysql数据库

背景介绍
mysql在生产环境中是非常常用的一种关系型数据库,性能好,开源。
而python的django框架在开发环境下自带了sqlite数据库,虽然测试很方便,但是在部署时,最好更换成mysql数据库。
在部署django的mysql时,踩了一个坑,而且解答也不是很完善,所以记录一下自己的配置过程。
部署使用的服务器是阿里云ecs云服务器,配置是2核4G,1M带宽。

OS: Debian 9.2 stretch
Kernel: x86_64 Linux 4.9.0-4-amd64

过程

1、安装mysql,就一行命令即可

apt-get install mysql-server

2、安装PyMySQL
这是一个python的库,用于python应用和mysql的衔接

pip  install  PyMySQL

3、配置_init_.py
这个文件放在和project同名的文件夹下(就是有settings.py的文件夹)
文件名是 _init_.py
文件内容是

import pymysql
pymysql.install_as_MySQLdb()

4、修改settings.py
将数据库的相应部分修改为:

DATABASES
### 配置 Django 项目以连接外部 MySQL 数据库 要在 Django 项目中配置并使用外部 MySQL 数据库,可以按照以下方法完成: #### 安装必要的依赖项 为了使 Django 能够成功连接到 MySQL 数据库,需要安装 `mysqlclient` 或者 `PyMySQL` 库。推荐优先使用 `mysqlclient`,因为它性能更优。 ```bash pip install mysqlclient ``` 如果无法安装 `mysqlclient`(例如在 Windows 上),可以选择安装 `PyMySQL` 并将其作为替代方案。 ```bash pip install PyMySQL ``` 当使用 `PyMySQL` 替代时,在项目的根目录下创建或编辑 `__init__.py` 文件,并添加如下代码以注册驱动程序[^1]: ```python import pymysql pymysql.install_as_MySQLdb() ``` --- #### 修改 settings.py 中的数据库配置 打开 Django 项目的 `settings.py` 文件,定位到 `DATABASES` 字典部分。修改其内容以便指向目标 MySQL 数据库。以下是完整的配置示例[^3]: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_database_name', # 数据库名称 'USER': 'your_username', # 数据库用户名 'PASSWORD': 'your_password', # 用户密码 'HOST': 'external_db_host', # 外部数据库主机地址 (IP 地址或者域名) 'PORT': '3306', # 默认端口为 3306 } } ``` 注意: - 将 `'your_database_name'`, `'your_username'`, 和 `'your_password'` 替换为目标数据库的实际值。 - 如果数据库位于远程服务器上,则需将 `'HOST'` 设置为该服务器的 IP 地址或域名[^4]。 --- #### 创建目标数据库 在实际运行之前,确保已经在目标 MySQL 实例中创建好对应的数据库以及具有适当权限的用户账户。可以通过 MySQL 命令行工具执行以下 SQL 语句来实现: ```sql CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` 上述操作会创建指定名称的数据库,并赋予特定用户对该数据库的所有访问权限。其中 `%` 表示允许来自任何 IP 的客户端连接;可以根据实际情况调整为主机的具体 IP 地址。 --- #### 测试数据库连接 完成以上步骤之后,尝试运行 Django 提供的数据迁移命令验证是否能够正常连接至新配置好的数据库: ```bash python manage.py migrate ``` 如果没有报错说明配置无误,Django 已经成功连接到了所设定的外部 MySQL 数据库。 --- #### 注意事项 对于生产环境中的安全性考虑,请务必遵循最佳实践保护敏感数据,比如通过 `.env` 文件存储数据库凭证而不是硬编码于源码之中[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值