我在solaris下面按照了mysql,然后修改/etc/my.cnf如下:
root@wlan5240-1 # more /etc/my.cnf
[client]
default-character-set=utf8
[mysqld] 
basedir = /usr/local/mysql 
datadir = /usr/local/mysql/data
default-character-set=utf8
重启mysql服务
cd /opt/mysql/mysql/bin
mysqld_safe &
然后进去 mysql -uroot -proot
mysql> show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | utf8_general_ci   |
+----------------------+-------------------+
3 rows in set (0.00 sec)mysql>  show variables like 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /opt/mysql/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
红色的部分为什么不是utf8_general_ci呢?

解决方案 »

  1.   

    [mysqld]  
    basedir = /usr/local/mysql  
    datadir = /usr/local/mysql/data
    default-character-set=utf8
    character_set_database=utf8
      

  2.   

    楼上的,我按照你说的添加后,mysql无法启动,如下:
    root@wlan5240-1 # 111206 23:04:49 mysqld_safe Logging to '/usr/local/mysql/data/wlan5240-1.err'.
    111206 23:04:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/dataroot@wlan5240-1 # 111206 23:04:55 mysqld_safe mysqld from pid file /usr/local/mysql/data/wlan5240-1.pid ended
      

  3.   

    my.cnf如下:
    root@wlan5240-1 # more /etc/my.cnf
    [client]
    default-character-set=utf8
    [mysqld] 
    basedir = /usr/local/mysql 
    datadir = /usr/local/mysql/data
    default-character-set=utf8
    character_set_server=utf8
    重启mysql后查看字符集
    mysql> show variables like 'collation_%';
    +----------------------+-------------------+
    | Variable_name        | Value             |
    +----------------------+-------------------+
    | collation_connection | utf8_general_ci   |
    | collation_database   | latin1_swedish_ci |
    | collation_server     | utf8_general_ci   |
    +----------------------+-------------------+
    3 rows in set (0.01 sec)mysql> show variables like 'character_set_%';
    +--------------------------+----------------------------------+
    | Variable_name            | Value                            |
    +--------------------------+----------------------------------+
    | character_set_client     | utf8                             |
    | character_set_connection | utf8                             |
    | character_set_database   | latin1                           |
    | character_set_filesystem | binary                           |
    | character_set_results    | utf8                             |
    | character_set_server     | utf8                             |
    | character_set_system     | utf8                             |
    | character_sets_dir       | /opt/mysql/mysql/share/charsets/ |
    +--------------------------+----------------------------------+
    8 rows in set (0.01 sec)
    还不是utf8的
      

  4.   

    这个是你创建数据库时指定的数据库默认字符集,不会因为你改参数而变化。 你另外创建个数据库,然后USE这个数据库。这个参数自然就变了。
    参考下贴中关于字符集的介绍。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码