由于 mac 电脑 暂时没有 mysqlclient python包
所以 mac下 只能使用 pymysql
所以写下文章记录一下
#安装 pymysql
pip install pymysql
步骤概述,
1_ 因为django默认mysqlclient连接mysql,但是mysql已经更换为 pymysql进行连接
2_ 更换以后,提示mysqlclient版本不够,但是我们已经更换为,pymysql,所以找到相关代码,直接注释掉 报错
3_ 最后又因为 opertions.py 文件使用了 python2 的decode方法,所以继续报错,直接打开 python/lib/site_page/django/mysql/operations.py
第146行将 ,decode方法修改为 encode ,即可,最后,django ,成功连接远程 mysql服务器
配置文件
DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘NAME’: ‘django_polls’, ‘USER’: ‘root’, ‘PASSWORD’: ‘Lmk@19980312’, ‘HOST’: ‘limengkai.work’, ‘PORT’: ‘3306’, ‘OPTIONS’: { ‘init_command’: “SET sql_mode=‘STRICT_TRANS_TABLES’”, }, } }
Django 链接MySQL数据库,报错Did you install mysqlclient?
mysqlclient已经 更新为 pymysql ,
pip install pymysql
所以记得在配置文件中,修改 setting
#project/project/setting.py import pymysql pymysql.install_as_MySQLdb()
,但是此时报错
搭建Django2.0+Python3+MySQL5时同步数据库时报错:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None
解决办法:
找到Python安装路劲下的Python36-32\Lib\site-packages\django\db\backends\mysql\base.py文件
将文件中的如下代码注释
if version < (1, 3, 3): raise ImproperlyConfigured(“mysqlclient 1.3.3 or newer is required; you have %s” % Database.version)
重新在项目manage.py路劲下执行如下命令即可
python manage.py makemigrations python manage.py migrate
继续报错
AttributeError: ‘str’ object has no attribute ‘decode’ File “/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/operations.py”, line 146, in last_executed_query query = query.decode(errors=‘replace’) AttributeError: ‘str’ object has no attribute ‘decode’
找到报错文件夹,将 decode 修改为 encode, 因为python3中已经移除了 decode方法