博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在django中使用mysql数据库
阅读量:2429 次
发布时间:2019-05-10

本文共 1659 字,大约阅读时间需要 5 分钟。

背景介绍

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

OS: Debian 9.2 stretchKernel: 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 pymysqlpymysql.install_as_MySQLdb()

4、

将数据库的相应部分修改为:

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # 将默认的sqlite3改为mysql        'NAME': "base_name", # 数据库的名字        'USER': "root",# 数据库用户名        'PASSWORD': "***",# 数据库密码        'HOST': "127.0.0.1",# 数据库地址,默认本机        'PORT': "",# 数据库端口,默认3306    }}

最后需要在mysql中创建一个database,和settings.py中写的NAME 相同。

/etc/init.d/mysql start # 启动mysqlmysql -u root -p # 连接mysql 然后输入密码

如果登录成功后

create database base_name; # 名字和settings.py中的一定要一样

之后执行

python manage.py makemigrationspython magage.py migratepython manage.py runserver

如果不报错,就说明自己的配置正确了。

遇到的坑

在配置完成后,执行

python makemigrations 后
报错如下:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

意思就是django 想要连接 mysql中对应的数据库时,连接被拒绝。

原因可能是 settings.py里面的用户名,密码填错了,可能是数据库里没有对应名称的database.
但是我试着按照配置里信息手动连接mysql,可以连接。说明我的原因不是这些。
后来查了许多,才看到一个真的work for me 的
是 stack overflow上的。
我来翻译一下,就是
debian和ubuntu系统安装mysql ,连接root用户时使用的登录认证是
而django连接数据库时使用的是 mysql_native_password 的认证方式,
所以需要修改root的plugin为mysql_native_password
命令如下:

mysql> USE mysql;mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';mysql> FLUSH PRIVILEGES;mysql> exit;

之后我的问题就真的解决了


希望我的踩坑经历可以对广大读者有所帮助,如果有错误,还请大佬们留言指出。

转载地址:http://eijmb.baihongyu.com/

你可能感兴趣的文章
漫画 | 一个前端渣渣的成功逆袭
查看>>
与吴恩达并肩战斗,她是 AI 界的女超人!|人物志
查看>>
微信手机 WeOS 的可行性到底有多大?
查看>>
阿里面试,我挂在了第四轮……
查看>>
C++ 程序员到高级架构师,必须经历的三个阶段
查看>>
和 Java、C# 等语言对比后,Python 简直酷上天了!
查看>>
程序媛到最后,拼的到底是什么?
查看>>
笑死!996 程序员竟然做了这个梦!| 每日趣闻
查看>>
“再见,微软!”
查看>>
ARM 发布新一代 CPU 和 GPU,实现 20% 性能提升!
查看>>
技术引路:机器学习仍大有可为,但方向在哪里?
查看>>
漫画:如何给女朋友解释什么是编译与反编译
查看>>
刷屏了!这篇 Python 学习贴,90% 的程序员都用的上!
查看>>
漫画:如何给女朋友解释什么是适配器模式?
查看>>
程序员又迎来一个好消息! | 每日趣闻
查看>>
Mac 被曝存在恶意漏洞:黑客可随意调动摄像头,波及四百万用户!
查看>>
拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
查看>>
程序员情商低?看完这 4 类程序员我懂了!
查看>>
《长安十二时辰》里你不能不知道的 IT 技术 | 每日趣闻
查看>>
程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
查看>>