虚拟环境下使用mysql_django在虚拟环境下配置连接mysql

搭建好虚拟环境之后,我打算在虚拟环境内使用环境外(也就是本地的mysql)踩了一天的坑。- -/

1、

setting.py下的配置

#mysql的配置

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'django_mysql', #自己想连接的库名

'USER': 'root', # 账号

'PASSWORD': 'root', # 密码

'HOST': 'localhost', # HOST

'POST': 3306, # 端口

'CHARSET':'UTF8',

}

}

__init__.py下的配置

import pymysql

pymysql.install_as_MySQLdb()

这两个位置的配置是不变的

2、一开始在虚拟环境下找不到本地的mysql,我们需要执行这两个命令

alias mysql=/usr/local/mysql/bin/mysql

alias mysqladmin=/usr/local/mysql/bin/mysqladmin

这样在虚拟环境下,就可以访问到mysql了

3、

数据迁移,执行python3 manage.py makemigrations时报错

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)")

重启了一下mysql服务就好了

在MAC 下启动和关闭MYSQL服务的命令

启动MySQL服务

sudo /usr/local/MySQL/support-files/mysql.server start

停止MySQL服务

sudo /usr/local/mysql/support-files/mysql.server stop

重启MySQL服务

sudo /usr/local/mysql/support-files/mysql.server restart

4、重启完mysql之后继续执行python3 manage.py makemigrations又报新的错误:AttributeError: 'str' object has no attribute 'decode']

File "/usr/local/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'

解决方法:

"/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/operations.py", line 146

找到报错的这个文件,将146行的decode修改成encode

# query = query.decode(errors='replace')

query = query.encode(errors='replace')

(其中踩过的坑就先不写了,以免误导大家,我的情况也不一定具有普适性,希望能帮助到别人,如果不成你们再查一下其他的方法吧。我用的是mac,windows下也许会有不同。)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值