http://blog.csdn.net/daven_java/article/details/8788071
MySQL的默認編碼是Latin1,不支持中文,要支持中午需要把數據庫的默認編碼修改爲gbk或者utf8。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
/etc/init.d/mysql start (stop) 爲啓動和停止服務器
·//注意:對5.2版本mysql:
找到客戶端配置[client] 在下面添加
default-character-set=utf8 默認字符集爲utf8
在找到[mysqld] 添加
default-character-set=utf8 默認字符集爲utf8
init_connect='SET NAMES utf8' (設定連接mysql數據庫時使用utf8編碼,以讓mysql數據庫爲utf8運行)
修改好後,重新啓動mysql 即可,重新查詢數據庫編碼可發現編碼方式的改變:
+--------------------------+----------------------------+
| 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
此方法用於標準mysql版本同樣有效,對於/etc/my.cnf文件,需要從mysql/support-files的文件夾cp my-large.cnf一份到/etc/my.cnf
show create database dbname;
show create table tbname;
級別 命令 時效 備註
服務器 SET GLOBAL character_set_server=utf8; 臨時
服務器 修改配置文件: [mysqld] default-character-set=utf8 永久
數據庫 SET GLOBAL character_set_database=utf8; 臨時
數據庫 同修改服務器 臨時
表 ALTER TABLE table_name DEFAULT CHARSET utf8; 永久
列 alter table `t_test` change `name` `name` varchar (255) character set utf8 collate utf8_general_ci null default null; 永久
連接 show variables like 'char%'; 臨時
連接 修改配置文件: [client] default-character-set=utf8 永久
創建時指定字符集
級別 命令
服務器級 在安裝MySQL時可以設置服務器的默認編碼格式
數據庫級 CREATE DATABASE db_name DEFAULT CHARACTER SET utf8;
表級 CREATE TABLE `db_name`.`tb_name` ( id VARCHAR(20) NOT NULL, name VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
列級 CREATE TABLE `db_name`.`tb_name` ( id varchar(20) NOT NULL, name varchar(20) CHARACTER SET utf8 );