mysql中国語の文字化けし問題


1、データベースを作成した後、データベースを使用して、まずレコードを挿入し、次に表示します.
mysql> insert into CmsUser(username,password,area) value ("admin2","123456","   ");
Query OK, 1 row affected, 1 warning (0.05 sec)

mysql> select * from CmsUser;
+--------+----------+----------+------+----------+
| userid | username | password | area | deptrole |
+--------+----------+----------+------+----------+
|      1 | mzuser   | NULL     | NULL | NULL     |
|      2 | mzuser   | 123456   | ??   | ??       |
|      3 | admin    | 123456   | ??   | NULL     |
|      4 | admin1   | 123456   | ??   | NULL     |
|      5 | admin2   | 123456   | ??   | NULL     |
+--------+----------+----------+------+----------+
5 rows in set (0.00 sec)

中国語挿入を見つけて表示しない
2、データベースの符号化方式を見て、latin 1
mysql> show create database example;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| example  | CREATE DATABASE `example` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
1 row in set (0.00 sec)

表の符号化方式を見て、latin 1であることを発見します
mysql> show create table CmsUser;
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                                                                             |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CmsUser | CREATE TABLE `CmsUser` (
  `userid` int(8) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) DEFAULT NULL,
  `area` varchar(10) DEFAULT NULL,
  `deptrole` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 |
+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

3、データベースとテーブルの符号化方式をutf 8に変更する
mysql> alter database example character set utf8;
Query OK, 5 rows affected (0.17 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> alter table CmsUser character set utf8;
Query OK, 5 rows affected (0.17 sec)
Records: 5  Duplicates: 0  Warnings: 0

 
alter table CmsUser modify column area varchar(10) character set utf8; 

 
4、一度に修正してから中国語を使うことができるように、プロファイル/etc/mysql/myを直接修正することもできる.cnf
[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
default-character-set=utf8                         //    

[mysqld]
#default-character-set=utf8                        //    ,     
character-set-server=utf8                          //    

データベースを再起動します
     /etc/init.d/mysql restart
clientとdatabaseがutf 8になったデータベース文字セットを表示します.
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     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


 
5、すべてのデータを削除して再挿入する
mysql> insert into CmsUser(username,password,area) value ("admin","123456","  ");
Query OK, 1 row affected (0.03 sec)

mysql> select * from CmsUser;
+--------+----------+----------+--------+----------+
| userid | username | password | area   | deptrole |
+--------+----------+----------+--------+----------+
|      1 | admin    | 123456   |      | NULL     |
+--------+----------+----------+--------+----------+
1 row in set (0.00 sec)

問題解決!