mysql 中文乱码

新安装的mysql服务器,由于默认的是latin编码,在linux服务器下经常出现乱码。

mysql的编码设计的比较复杂,涉及到服务器,客户端,数据库,表及表字段编码。为了支持中文,需要将所有的编码设置为UTF8。

 

一. 配置 

vi /etc/my.cnf

 

[client]
default-character-set = utf8 			#客户端设置UTF8

[mysqld]
lower_case_table_names = 1				#表名忽略大小写
character-set-server = utf8 			#服务端设置UTF8
collation-server = utf8_general_ci		#utf8且大小写不敏感的校正规则

 

查看表编码:

mysql> show create table green_app_info;
+----------------+------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                             --------------+
| green_app_info | CREATE TABLE `green_app_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `apptype` int(11) NOT NULL,
  `appid` int(11) NOT NULL,
  `name` char(128) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1064 DEFAULT CHARSET=utf8 |
+----------------+------------------------------------------------------------------------------------------------------------------+
1 row in set

 

设置数据库编码:

alter database greennet character set utf8; 

 

查看编码:

mysql> show variables like '%character_set_%';
+--------------------------+---------------------------------------------------------+
| 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.39-linux2.6-x86_64/share/charsets/ |
+--------------------------+---------------------------------------------------------+
8 rows in set

全部设置成UTF8,然后 /etc/init.d/mysqld restart  重启,插入中文正常。

 

二. PDM设置表编码

1. 设置表选项

Database --> Edit Current DBMS

General --> MySQL 5.0 --> Script --> Table --> Options 

添加如下内容,设置表ENGINE,字符编码,校对规则:

ENGINE = %s : list = BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM, default = MYISAM 
DEFAULT CHARSET = %s : list = utf8 | gbk, default = utf8 
COLLATE = %s : list = utf8_bin | utf8_general_ci | gbk_bin | gbk_chinese_ci, default = utf8_bin

 

2. 设置表字符

双击表 --> 选中UTF8编码

 

 

 

 

 

 

 

猜你喜欢

转载自tcspecial.iteye.com/blog/2331967
今日推荐