V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

django +mysql 为了把 utf8 改成 utf8mb4 我装了 mysql5.6, 在执行 Python manage.py 的时候总是出现这错

  •  
  •   python30 · 2019-01-02 23:10:11 +08:00 · 3180 次点击
    这是一个创建于 1912 天前的主题,其中的信息可能已经有所发展或是发生改变。



    这是 mysql 里的日志






    这是我 settings.py 里的数据库配置

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'xxxx',
    'USER': 'xxxxx',
    'PASSWORD': 'xxxxx',
    'HOST': 'localhost',
    'PORT': '3306',
    'OPTIONS':{
    'init_command':"SET sql_mode='STRICT_TRANS_TABLES'",
    'charset':'utf8mb4',
    },
    }
    }


    不知道哪里有问题 ?

    搞了一晚上有点头晕
    再不行就得明天重装了
    15 条回复    2019-01-04 10:49:47 +08:00
    111qqz
        1
    111qqz  
       2019-01-02 23:58:24 +08:00 via Android
    看起来是不支持 mysql ? django 版本是啥?
    shylocks
        2
    shylocks  
       2019-01-03 00:10:09 +08:00
    DATABASE 前加上
    import pymysql
    pymysql.install_as_MySQLdb()
    试试?
    0xABCD
        3
    0xABCD  
       2019-01-03 00:20:22 +08:00 via Android
    只支持 postgres/oracle/sqlite3 ?啥版本的 Django ?
    python30
        5
    python30  
    OP
       2019-01-03 10:13:52 +08:00
    @111qqz django1.11.12
    python30
        6
    python30  
    OP
       2019-01-03 10:16:51 +08:00
    @0xABCD django 1.11
    python30
        7
    python30  
    OP
       2019-01-03 10:18:36 +08:00
    @shylocks 还是不行,
    我是用 yum 安装的 mysql5.6
    我删了重装 mysql 试试。
    huisezhiyin
        8
    huisezhiyin  
       2019-01-03 10:22:49 +08:00
    你没有按 python 和 mysql 依赖包
    试试 yum install MySQL-python
    python30
        9
    python30  
    OP
       2019-01-03 10:35:30 +08:00
    @huisezhiyin 安装了这个了。
    也运行了 pip install pymsql
    还是不行。不知道是还少哪个包
    xpresslink
        10
    xpresslink  
       2019-01-03 10:47:05 +08:00
    第一步安装驱动:
    pip install pymysql
    注意你要是使用了虚拟环境一定要在激活之后再执行这条命令。

    第二步启用驱动:
    在项目的 settings.py 所在的那个目录中找到__init__.py
    在前两行加下面两句
    import pymysql
    pymysql.install_as_MySQLdb()
    izoabr
        11
    izoabr  
       2019-01-03 10:49:34 +08:00
    问题还没到 MYSQL 呢,Python 的 mysql 驱动都还没有,怎么连。

    去查一下 django mysql
    julyclyde
        12
    julyclyde  
       2019-01-03 17:05:06 +08:00
    单就错误信息来看,这事和数据库服务器那边没啥关系,所以你删除再重装 mysql 也不会有任何效果的
    julyclyde
        13
    julyclyde  
       2019-01-03 17:19:27 +08:00
    /usr/local/lib/python2.7/site-packags/django/db/backends/mysql/
    看一下这个路径里有文件没
    python30
        14
    python30  
    OP
       2019-01-03 22:45:11 +08:00
    多谢各位
    我用 centos 6.9 安装自带的 mysql5.1 版本。没有 pip install MySQL-python。
    这样可以。

    我在 centos6.9 上 把 mysql 升级到 5.6 得需要 pip install MySQL-python pymysql

    于是通过下面:

    pip install MySQL-python
    假设错误发生,须要先安装一个开发包:

    yum install python-devel
    假设还是报错,执行:

    yum install mysql-devel.x86_64
    然后再执行 pip 命令安装 mysql-python

    然后就可以了
    现在也在由 utf8 改用 utf8mb4 数据库了


    多谢各位
    julyclyde
        15
    julyclyde  
       2019-01-04 10:49:47 +08:00
    有 pymysql 的情况下就完全不依赖于 mysql-dev
    这正是“其它 Linux 发行版”里面,dango 依赖 pymysql 而不依赖 mysql-python 的原因
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5666 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 06:28 · PVG 14:28 · LAX 23:28 · JFK 02:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.