前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django连接mysql出现OperationalError

django连接mysql出现OperationalError

作者头像
kirin
发布2020-05-25 17:07:28
1.8K0
发布2020-05-25 17:07:28
举报
文章被收录于专栏:Kirin博客

django当中需要使用mysql作为数据库,创建好Model之后执行以下命令创建表

代码语言:javascript
复制
python manage.py migrate

但是执行的时候遇到错误:

代码语言:javascript
复制
django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")

原因分析:

我们在连接mysql的时候,如果host是localhost, 就会使用Unix Domain Socket来连接, MySql默认的sock文件路径是/tmp/mysql.sock, 可以通过打开/etc/my.cnf确认。

解决方案

1.修改HOST

打开settings.py文件,找到DATABASESHOST字段。 有两种修改方案:

  • localhost改成127.0.0.1, 使用内网连接
  • localhost改成/var/lib/mysql/mysql.sock
代码语言:javascript
复制
 DATABASES = {
     'default': {                                                                                                               
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'xxx',
          'USER': 'root',
          'PASSWORD': 'passwd',
          'HOST':'127.0.0.1', # 或者 `/tmp/mysql.sock`
          'PORT':'3306',
      }
  }
2. 修改mysql的sock文件路径
代码语言:javascript
复制
vi etc/my.cnf

将sock路径变更为/var/lib/mysql/mysql.sock

代码语言:javascript
复制
socket          = /tmp/mysql.sock

重启MySql服务。 Centos机器上

代码语言:javascript
复制
systemctl restart mysqld
3. 数据库连接指定sock路径
代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxx',
        'USER': 'root',
        'PASSWORD': 'passwd',
        'OPTIONS': {
            "unix_socket": "/tmp/mysql.sock",
        },
    }
}

亲测有效
文章出自https://www.jianshu.com/p/2f261dbc4016
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/05/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原因分析:
  • 解决方案
    • 1.修改HOST
      • 2. 修改mysql的sock文件路径
        • 3. 数据库连接指定sock路径
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档