【原创】Mac环境下配置Django连接MySQL数据库

发布于 2018-05-29  1823 次阅读


基础环境:

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文件,数据库连接,配置如下:

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时,会提示:

IndexError: string index out of range

这时,需要修改mysql_config 文件,位于:/usr/local/bin/下,修改如下:

# Create options
libs="-Lpkglibdir"
#libs="libs -l "#这是原来默认的
libs="$libs -lmysqlclient -lssl -lcrypto"#这时修改后的,直接复制这个就可以了

以上修改的是mysql的文件,修改后,再去安装mysqlclient,就可以正常安装了。

4.这一步看情况,如果你在安装好mysqlclient和设置好setting的数据连接信息了, 还是不能正常连接数据库,并提示:

错误2059(HY000):身份验证插件'caching_sha2_password'无法加载

这是因为mysql 8.0 以后的版本,连接验证模式更改为 :caching_sha2_password了,我们需要把mysql的默认连接方式改为:

mysql_native_password

修改方法:

在/etc/路径下建立一个my.conf文件,并添加默认的认证方式,具体操作方法:

4.1 先创建my.conf文件:http://blog.csdn.net/jyongchong/article/details/77862819

4.2 添加默认连接认证方式:

vim my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password

然后重启数据库,就可以连接上了。

 

到此所有的配置和踩坑都已总结完毕。