Mysql 乱码问题--如何查看和修改Mysql 的字符集

标签: mysql 乱码 问题 | 发表时间:2012-04-13 00:51 | 作者:
出处:http://www.iteye.com

MySQL会出现中文乱码的原因不外乎下列几点:
   1.server本身设定问题,例如还停留在latin1
   2.table的语系设定问题(包含character与collation)
   3.客户端程式(例如 php)的连线语系设定问题
   强烈建议使用utf8!!!!
   utf8可以兼容世界上所有字符!!!!

查看 并 修改Mysql的字符集编码格式:


查看默认的编码格式:
mysql> show variables like "%char%";
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+
注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

执行SET NAMES utf8的效果等同于同时设定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';


通过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)
查看:
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/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.03 sec)

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql 乱码 问题] 推荐:

Mysql 乱码问题--如何查看和修改Mysql 的字符集

- - ITeye博客
MySQL会出现中文乱码的原因不外乎下列几点:.    1.server本身设定问题,例如还停留在latin1.    2.table的语系设定问题(包含character与collation).    3.客户端程式(例如 php)的连线语系设定问题.    utf8可以兼容世界上所有字符!!!!.

MySQL 乱码之我见

- - SegmentFault 最新的文章
先着重介绍一下mysql的字符集,这样能对产生mysql的根源有一个了解. mysql 的字符集支持有两个方面:字符集(Character set)和排序方式(Collation). 另外对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection).

(原创)Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

- - 服务器运维与网站架构|Linux运维|X研究
PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决. 解决了,有个细节问题网上没人说,我就总结一下. 一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:. character_set_database和character_set_server的默认字符集还是latin1.

用MySQL Slow Log解决MySQL CPU占用高的问题

- - OurMySQL
   在Linux VPS系统上有时候会发现MySQL占用CPU高,导致系统的负载比较高. 这种情况很可能是某个SQL语句执行的时间太长导致的. 优化一下这个SQL语句或者优化一下这个SQL引用的某个表的索引一般能解决问题.    但是怎么找到是哪个SQL语句的执行时间过长呢. 可以通过MySQL Slow Log来找,详解如下.

MySQL Temporary Table相关问题的探究

- comain - 淘宝核心系统团队博客
让我们先来观察几条非常简单的MySQL语句:. 这是丁奇提出的引导性的问题,几条语句看似简单,不过接下来我们提出的一连串问题与进. 看到以上语句,你很容易会产生类似于以下的疑问:. 上述语句在一个session中先后创建了两个名为’tmp’的table,只不过一个是temporary. table,一个是normal table.

NUMA 架构中 MySQL 的 “swap insanity” 问题

- khsing - Linux@SOHU
翻译:王鑫、朱翊然、李凯、曾怀东、马少兵、林业. 在一台包括了2个4核CPU,64GB内存的服务器上,给 MySQL 配置了 48GB 之巨的 InnoDB 缓冲,随着时间的推移,尽管观察到的数据(见最后注1)表示并没有真正的内存压力,Linux 也会把大量的内存交换到磁盘上. 通过监控发现,配置的内存超过了实际所需,而且也不存在内存泄漏,mysqld的RSS占用正常且稳定.

使用pt-stalk诊断MySQL问题

- - haohtml's blog
在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息. 另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人为的抓住现场,收集数据. 这正是pt-stalk所解决的问题. pt-stalk是 Percona-Toolkit的一部分(其前身是 Aspersa的一部分).

MySQL与Oracle的大小写问题

- - 数据库 - ITeye博客
前段时间,维护的一个应用在Oracle测试时出错,该应用原来已经在MySQL上完成测试. 通过查找定位,原因是字段名大小写问题. 下面与大家分离一下MySQL与Oracle在大小写处理上的区别:. 1、在Windows下,数据库名、表名、字段名不区分大小写. 2、大Linux/Unix下,数据库名、表名区分大小写,字段名不区分大小写.

MySQL行子查询语句问题

- - 数据库 - ITeye博客
大家好,在项目中碰到如下问题:. hibernate 映射表的时候使用联合主键. 商品表:Item,主键为联合主键ItemId. itemId, userId 联合索引. 通过上面的更新语句hibernate产生如下SQL语句. 在后台查询这条sql语句非常耗时,在item表数据量达到百万级级的时候好使就需要2~3秒.