LS5*_*321 9 mysql django utf-8
我想让我的Django站点以一种万无一失的方式使用UTF-8 for MySQL,无论MySQL安装是否使用UTF-8作为其默认值.除了使用UTF-8编码创建表之外,我还在settings.py中的数据库初始化中添加了以下内容,以确保连接也使用utf-8:
'OPTIONS': { 'init_command': 'SET storage_engine=INNODB; SET names "utf8"' }
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now")
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?还有另一个需要执行SET NAMES的地方吗?
Geo*_*ALA 16
您只需要使用一次SET并将其他命令附加为:
'SET storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci'
Run Code Online (Sandbox Code Playgroud)
Mik*_*one 10
我所要做的就是把它放进去settings.py:
'OPTIONS': { 'init_command': 'SET storage_engine=INNODB' }
Run Code Online (Sandbox Code Playgroud)
然后我在MySQL中自己创建了数据库:
CREATE DATABASE my_database CHARACTER SET utf8;
Run Code Online (Sandbox Code Playgroud)
然后是所有CREATE USER和GRANT电话.
在那之后,./manage.py syncdb和 ./manage.py migrate(因为我用南)完成了一切.
到目前为止,它一直很好用.也没有必要更改任何MySQL配置文件.(系统管理员希望latin1默认情况下为其他用户使用charset 保留MySQL .)
| 归档时间: |
|
| 查看次数: |
17187 次 |
| 最近记录: |