Django链接Mysql出现的问题详解

最近在研究Django,在链接数据库的时候出现了一些小问题,记录在此,给自己做个记录,同时给各位一个参考。
首先说明下,在mac电脑上,用的virtualenv虚拟环境,Django的版本是1.11.3,Python的版本是3.6

问题1:

_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")
 

问题2:

django.db.utils.OperationalError: (1045, "Access denied for user 'test'@'localhost' (using password: YES)")

出现此问题,网上有一堆详解这个问题的原因,具体可以自己搜索。

我的解决办法是:

1.先安装mysql数据库,直接brew安装就行:
brew install mysql
2.启动mysql服务:
mysql.server start

关于怎么设置初始化配置root账户参考:
https://segmentfault.com/q/1010000000475470

3.设置setting.py中的DATABASES:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',       # 或者使用 mysql.connector.django
        'NAME': 'TestModel',
        'USER': 'test',
        'PASSWORD': 'test123',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

我这里设置的数据库名字:TestModel,用户:test ,密码:test123

4.同时设置数据库的相关参数与setting.py保持一致,具体如下:

进入数据库:

mysql -uroot -p

创建数据库 TestModel的参数

mysql> create database TestModel;
mysql> create user test idenfified by 'test123';
mysql> grant all on TestModel.* to 'test'@'%';
mysql> flush privileges;
5.最后虚拟环境中同步一下:
python3 manage.py migrate
python3 manage.py runserver

出现如下:

System check identified no issues (0 silenced).
July 19, 2017 - 01:53:41
Django version 1.11.3, using settings 'MySetting.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

以上就是我解决上两个问题的思路。

参考链接:https://stackoverflow.com/questions/2443419/django-mysql-1045-access-denied-for-user

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容