Django 2連線MySQL資料庫
Django 專案部署在Windows伺服器下,則
報錯類似如下的內容:
或:
django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
或:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" "-Id:\program files\python\python36-32\include" "-Id:\program files\python\python36-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.6\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS
_mysql.c
MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'f:\python\pycharmprojects\zcgl\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-4_3wbuoq\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-4_3wbuoq\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\ADMINI~1\AppData\Local\Temp\pip-record-l6ntou11\install-record.txt' --single-version-externally-managed --compile --install-headers 'f:\python\pycharmprojects\zcgl\include\site\python3.6\mysqlclient' Check the logs for full command output.
或:
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
解決方法:
Django連線MySQL時預設使用MySQLdb驅動,但MySQLdb不支援Python3,因此這裡將MySQL驅動設定為pymysql,使用 pip install pymysql 進行安裝,然後在工程檔案__init__.py新增以下程式碼即可。
#安裝pymysql
pip install pymysql
#__init__.py
import pymysql
pymysql.install_as_MySQLdb()
第一種:
django降到2.1.4版本就OK了
第二種(仍使用django 2.2版本):
#找到Python環境下 django包,並進入到backends下的mysql資料夾
cd /opt/anaconda3/envs/envAGC_Mini/lib/python3.6/site-packages/django/db/backends/mysql
#檔案列表如下
# 找到base.py檔案,註釋掉 base.py 中如下部分(35/36行)
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
此時仍會會報錯,報錯資訊如下:
AttributeError: ‘str’ object has no attribute ‘decode’
#找到operations.py檔案(46行,版本不同行數不同哈~自個兒find一下),將decode改為encode
#linux vim 查詢快捷鍵:?decode
if query is not None:
query = query.decode(errors='replace')
return query
#改為
if query is not None:
query = query.encode(errors='replace')
return query
連線資料庫的寫法:
# Database # https://docs.djangoproject.com/en/1.10/ref/settings/#databases # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } # } # 1. 建立資料庫,create database lhrdb default charset=utf8mb4; # 2. 建立資料庫使用者,grant all on lhrdb.* to lhr@'%' identified by 'lhr'; DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'lhrdb', 'USER': 'lhr', 'PASSWORD': 'lhr', 'HOST': '127.0.0.1', 'PORT': '3310', } }
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群號: 230161599 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ),註明新增緣由 ● 於 2020-03-01 06:00 ~ 2020-03-31 24:00 在西安完成 ● 最新修改時間:2020-03-01 06:00 ~ 2020-03-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班: http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁: https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2679144/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- django | 連線mysql資料庫DjangoMySql資料庫
- Django使用pymysql連線MySQL資料庫DjangoMySql資料庫
- 連線資料庫-mysql資料庫MySql
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- django2.2版本連線mysql資料庫的方法DjangoMySql資料庫
- 如何連線MySQL資料庫MySql資料庫
- Python連線MySQL資料庫PythonMySql資料庫
- pycharm連線MySQL資料庫PyCharmMySql資料庫
- Django資料庫連線丟失問題Django資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- 遠端連線mysql資料庫MySql資料庫
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- 使用cmd連線mysql資料庫MySql資料庫
- Spring JPA資料庫連線MySQLSpring資料庫MySql
- mysql資料庫怎麼連線MySql資料庫
- django中的資料庫連線池實現Django資料庫
- Django 直接使用資料庫連線和遊標讀寫資料庫Django資料庫
- django 配置mysql資料庫DjangoMySql資料庫
- MySql資料庫連線池專題MySql資料庫
- python+selenium 連線MySQL資料庫PythonMySql資料庫
- PHP連線、查詢MySQL資料庫PHPMySql資料庫
- R語言連線資料庫(MySQL)R語言資料庫MySql
- Pycharm 怎麼連線 MySQL 資料庫PyCharmMySql資料庫
- 連線別人的MySql資料庫MySql資料庫
- SpringBoot專案連線MySQL資料庫Spring BootMySql資料庫
- python操作MySQL資料庫連線(pymysql)PythonMySql資料庫
- 精PHP與MYSQL資料庫連線PHPMySql資料庫
- mysql資料庫連線池配置教程MySql資料庫
- python連線mysql資料庫步驟PythonMySql資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- django怎麼連線mysqlDjangoMySql
- Django切換MySQL資料庫DjangoMySql資料庫
- 使用RMySQL包來連線MySQL資料庫MySql資料庫
- DBSync如何連線並同步MySQL資料庫MySql資料庫
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- MySQL資料庫遠端連線開啟方法MySql資料庫
- 連線資料庫資料庫
- 使用反應式關聯式資料庫連線規範R2DBC操作MySQL資料庫資料庫MySql