在配置LAMP服务器中,发现有些朋友装好了,但是在使用过程中,
不知道如何修改mysql编码,导致mysql不能启动或者一些项目出现乱码现象。

我这里使用CentOS5.1 和 Mysql6.0 作为演示环境。
==========================================
首先查看安装好的mysql编码,Mysql提供命令查看环境参数的工具。

[root@localhost ~]# /usr/local/bin/mysqladmin variables
这样就列出了很多参数,不过我们只找和字符编码有关的参数说明

| character_set_client             | latin1                                   |
| character_set_connection        | latin1                                   |
| character_set_database          | latin1                                   |
| character_set_filesystem        | binary                                   |
| character_set_results            | latin1                                   |
| character_set_server             | latin1                                   |
| character_set_system            | utf8                                     |
| character_sets_dir               | /usr/local/share/mysql/charsets/         |
| collation_connection             | latin1_swedish_ci                        |
| collation_database                | latin1_swedish_ci                        |
| collation_server                 | latin1_swedish_ci                        |

上面这些才是和mysql字符编码有关的。
可以看到默认mysql编码是latin1,那么我们下面就对它修改成我们想要的。

==========================================
下面是修改成utf8编码过程(如果要修改gbk,把utf8换成gbk就可以)

在/etc目录下的my.cnf文件(此文件相当于windows中的.ini文件)

使用 vi 进去修改  vi /etc/my.cnf

找到在[mysqld]这一行下面,加入一句default-character-set=utf8即可!
保存退出 然后 重启 mysql 就可以了。很简单吧 呵呵

一般,如果你是编译安装mysql ,建议你像我下面的做法
cp /usr/local/share/mysql/mysql.server /etc/init.d/mysqld

mysql 关闭的命令为:/etc/init.d/mysqld stop

mysql 启动的命令为:/etc/init.d/mysqld start

我们再查看修改后的字符参数
#/usr/local/bin/mysqladmin variables

可以该命令列出的参数中参数如
| character_set_client             | utf8                                     |
| character_set_connection        | utf8                                     |
| character_set_database          | utf8                                     |
| character_set_filesystem         | binary                                   |
| character_set_results            | utf8                                     |
| character_set_server             | utf8                                     |
| character_set_system            | utf8                                     |
| character_sets_dir              | /usr/local/share/mysql/charsets/         |
| collation_connection            | utf8_general_ci                          |
| collation_database              | utf8_general_ci                          |
| collation_server                 | utf8_general_ci                          |

全部已经改成uft8,则配置编码方式为utf8成功!

好了,查看和修改 mysql 数据库编码就演示到这里,

这里我还想给点意见,在项目开发过程中,我个人建议统一使用utf8编码。

如果你还在msyql编码上有什么建议或者遇到什么问题,请给作者留言,谢谢!


“轻松查看和修改MySql6.0数据库编码(Linux版本)视频演示”有9个评论

  1. 08月 10th, 2008 at 15:45:18 #itans

    非常感谢。。。呵呵。

    是我需要的。!

    [回复]

  2. 12月 17th, 2008 at 16:50:53 #Websites tagged "charsets" on Postsaver

    [...] - Ruby 1.9’s charsets FTW saved by eweine2008-12-02 - 轻松查看和修改MySql6.0数据库编码(Linux版本)视频演示 saved by wasigh2008-11-05 - mysql 编码问题latin1(iso8859) saved by KibaInozuka2008-10-10 - [...]

  3. 06月 11th, 2009 at 19:03:14 #joseph

    请问:gbk 和gb312都报错,知道是怎么回事吗?

    [回复]

    adminreply on 2009-06-12 09:20:52:

    这个我没有设置过,我习惯统一使用utf8,

    gbk 和gb312都报错,知道是怎么回事吗?

    是 gb2312 吧 ?? 是不是写错了 ?
    如果都不行,可能和系统有关系的,系统可能也要支持gbk和gb2312 才能设置。

  4. 06月 12th, 2009 at 16:31:15 #joseph

    查了网上的资料说,要卸载从新make。语句是:
    make with_charset=gbk with_xcharset=all
    make install clean

    那如果这样,是不是要先卸载 mysql。(make uninstall)
    configure呢?也要从做?
    my.cnf呢?是不是也得改?

    我不是很明白。能给我点建议么?

    [回复]

    adminreply on 2009-06-12 19:45:17:

    如果这样的话 只能重新make 加入 gbk 还有支持所有 字符集的 参数
    是 configure 的时候吧 ? with_charset=gbk with_xcharset=all
    网上找找 。。。。

  5. 12月 2nd, 2009 at 17:48:20 #匿名

    请问你这个 在MYSQL5。0的版本能实现吗?

    [回复]

  6. 12月 2nd, 2009 at 18:12:11 #匿名

    我照你的视频做了,但是出错:
    091120 11:27:59 mysqld started
    /usr/local/libexec/mysqld: Character set 'gbk' is not a compiled character set and is not specified in the '/usr/local/share/mysql/charsets/Index.xml' file
    091120 11:27:59 [ERROR] Aborting

    091120 11:27:59 [Note] /usr/local/libexec/mysqld: Shutdown complete

    091120 11:27:59 mysqld ended
    我的环境是在5.0的请问这是什么问题

    [回复]

    adminreply on 2009-12-02 19:04:36:

    这个可能需要你编译安装mysql的时候加入 gbk字符集的支持。

    configure 的时候 加入 with_charset=gbk with_xcharset=all 试一下。

有任何疑问或建议,可以给作者留言:



公告:

  • 2010年5月之前的视频是文字解说演示,没有声音。
  • 2010年5月以后的视频全部带声音。