基础环境:
Mac 电脑
IDE工具:Pycharm 2018
python3.6
Django--1.8.2
MySQL--8.0.11
第三方库:pymysql(推荐) 或者 mysqlclient
配置教程:
1.通过pip3 安装好Django环境,然后在通过mysql的官网下载安装包,直接安装mysql ,最后创建Django的项目。
2.配置Django项目中的Setting文件,数据库连接,配置如下:
1 2 3 4 5 6 7 8 9 10 11 | DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'NAME':'test2',#这里是你的数据库中的数据库名 'USER':'root',#这里是连接数据库的账户,我用的是root 'PASSWORD':'xxxxxxxx',#这里是对应的数据库账户的密码 'HOST':'blog.bigyoung.cn',#这里填写localhost或者blog.bigyoung.cn 都可以 'PORT':'3306',#默认端口是这个 } } |
以上配置,一定要注意键名:NAME、USER、PASSWORD…… 都一定是大写,否则数据验证会失败。
我的【NAME】,写成了【Name】导致数据连接时提示:找不到这个数据库 。
然后通过pip 安装pymysql :pip install pymysql
再在项目配置目录里的init.py文件中写入:
import pymysql
pymysql.install_as_MySQLdb()
执行python manage.py makemigrations
python manage.py makemigra
再运行服务,应该是可以启动django服务的。
以下内容是针对mysqlclient安装出错后的指导文档,如无问题,请忽略!!
3.以上两步做完,运行Django项目时,会提示:Error loading MySQLdb module:No module named ‘MySQLdb’ ,这时我们要进行安装‘mysqlclient’的第三方库,主要用来管理mysql与python3的连接使用。但是通过pip3 install mysqlclient时,会提示:
1 | IndexError: string index out of range |
这时,需要修改mysql_config 文件,位于:/usr/local/bin/下,修改如下:
1 2 3 4 | # Create options libs="-L$pkglibdir" #libs="$libs -l "#这是原来默认的 libs="$libs -lmysqlclient -lssl -lcrypto"#这时修改后的,直接复制这个就可以了 |
以上修改的是mysql的文件,修改后,再去安装mysqlclient,就可以正常安装了。
4.这一步看情况,如果你在安装好mysqlclient和设置好setting的数据连接信息了, 还是不能正常连接数据库,并提示:
1 | 错误2059(HY000):身份验证插件'caching_sha2_password'无法加载 |
这是因为mysql 8.0 以后的版本,连接验证模式更改为 :caching_sha2_password了,我们需要把mysql的默认连接方式改为:
1 | mysql_native_password |
修改方法:
在/etc/路径下建立一个my.conf文件,并添加默认的认证方式,具体操作方法:
4.1 先创建my.conf文件:https://blog.youkuaiyun.com/jyongchong/article/details/77862819
4.2 添加默认连接认证方式:
1 2 3 | vim my.cnf [mysqld] default_authentication_plugin=mysql_native_password |
然后重启数据库,就可以连接上了。
到此所有的配置和踩坑都已总结完毕。