最近安裝了mac osx lion系統,然后安裝了mysql5.5.16版本的數據庫進行開發,但是大家都知道,mysql的默認編碼是latin1,如果存儲中文的話就會出現亂碼,然后就狂google這個問題,但是一直都沒有解決,網上大部分的回答都是如下:
1.拷貝/usr/local/mysql/support-files下的任意一個*.cnf文件到/etc/my.cnf;
2.在my.cnf文件的[mysqld]和[client]后面添加一句default-character-set=utf8(或者是default_character_set=utf8);
3.保存退出;
4.重新啟動mysql服務器就可以。
可是我試過好多次,這樣修改之后,mysql服務根本就啟動不了。
偶然的機會,我發現了一個關於在linux下配置mysql的編碼問題的方法,抱着試試看的態度,我進行了修改,發現真的可以用,因此發這篇博文希望裝mac的朋友不用再走彎路了。配置方法如下:
1.拷貝/usr/local/mysql/support-files下的任意一個*.cnf文件到/etc/my.cnf;
2.在my.cnf文件的[client]后面添加一句default-character-set=utf8( 不是default_character_set=utf8[i][/i],這個配置我沒有試過,不知道能不能成功),關鍵在這里的配置,在[mysqld]后面添加如下三句:
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci;
3.保存退出;
4.重新啟動mysql服務器就可以。
然后再就入mysql數據庫查看編碼發現改成了utf8了。
下面是我重啟mysql服務器進入mysql數據庫查出來的結果:
Java代碼
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 520
Server version: 5.5.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like '%char%';
+--------------------------+--------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| 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/mysql-5.5.16-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 520
Server version: 5.5.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like '%char%';
+--------------------------+--------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| 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/mysql-5.5.16-osx10.6-x86_64/share/charsets/ |
+--------------------------+--------------------------------------------------------+
8 rows in set (0.00 sec)
至此,這個困擾多日的問題終於解決了。