技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 修改MySQL的默认编码设置

修改MySQL的默认编码设置

浏览:1837次  出处信息

    最近在MacOS下用django框架做web开发,于是用MacPorts安装了MySQL5。但是测试时django的测试框架会报错,原因是UTF8数据无法插入。

    我们知道,MySQL安装完成后默认编码为latin1,并不适合中文应用。因此我们通常用下面的SQL语句创建数据库:

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    而django测试框架创建测试数据库时并不会像这样指定编码,因此创建的数据库编码为latin1,导致加载UTF8数据时就会出错。

    貌似django并没有提供创建数据库时指定编码的选项,因此只能修改MySQL服务器的默认编码设置。下面以MacPorts下的mysql5为例说一下设置方法。

    首先复制一份my.cnf到 /opt/local/etc/mysql5:

$ cd /opt/local/etc/mysql5/
$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf my.cnf

    然后编辑my.cnf,在[mysqld]节添加以下两行:

$ sudo vi my.cnf
[mysqld]
...
collation_server = utf8_general_ci
character_set_server = utf8

    保存退出后重启mysqld:

$ sudo /opt/local/bin/mysqladmin5 -u root shutdown
$ sudo /opt/local/bin/mysqld_safe5 &

    这样就可以了。确认一下:

mysql> show variables like \'collation_server\';
+------------------+-----------------+
| Variable_name    | Value           |
+------------------+-----------------+
| collation_server | utf8_general_ci |
+------------------+-----------------+
1 row in set (0.00 sec)

mysql> show variables like \'character_set_server\';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| character_set_server | utf8  |
+----------------------+-------+
1 row in set (0.00 sec)

建议继续学习:

  1. 字符编码和中文乱码小叙    (阅读:5574)
  2. 中文编码杂谈    (阅读:4915)
  3. Hadoop的map/reduce作业输入非UTF-8编码数据的处理原理    (阅读:4578)
  4. PHP编码规范    (阅读:4325)
  5. base64_encode 和 urlencode    (阅读:4057)
  6. UTF-8编码中BOM的检测与删除    (阅读:4006)
  7. Linux screen窗口中文乱码问题    (阅读:3924)
  8. Unicode与字符汉字相互转换    (阅读:3852)
  9. python-django的中文编码总结    (阅读:3760)
  10. JAVASCRIPT完美实现UTF8页面提交数据到GB2312    (阅读:3564)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
  • 作者:charlee    来源: idv2
  • 标签: 编码
  • 发布时间:2011-06-02 13:31:54
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1