mysql中文问题全处理(3)

发表于:2013-06-03来源:Csdn作者:xyz_lmn点击数: 标签:MySQL
mysql select * from employee; | 14 | 王 | 彭给 | 1978-12-11 | f | aaa@asdf.com | | 15 | 田 | 王光 | 1978-12-11 | f | aaa@asdf.com | | 16 | 息 | 存入 | 1978-12-11 | f | aaa@asdf.com | | 17 | 往

  mysql> select * from employee;

  | 14 | 王 | 彭给 | 1978-12-11 | f | aaa@asdf.com |

  | 15 | 田 | 王光 | 1978-12-11 | f | aaa@asdf.com |

  | 16 | 息 | 存入 | 1978-12-11 | f | aaa@asdf.com |

  | 17 | 往 | 小杯 | 1978-12-11 | f | aaa@asdf.com |

  +-------------+-----------+------------+------------+------+--------------+

  可以高兴得看到了中文,并且在浏览器中也显示正确。

  但是仅仅这样的话,当你重新启动mysql的时候

  所有的设置又失效了。

  mysql> show variables like '%character%';

  +--------------------------+-------------------------------------------+

  | Variable_name | Value |

  +--------------------------+-------------------------------------------+

  | character_set_client | latin1 |

  | character_set_connection | latin1 |

  | character_set_database | utf8 |

  | character_set_results | latin1 |

  | character_set_server | utf8 |

  | character_set_system | utf8 |

  | character_sets_dir | C:/MySQL/MySQL Server 5.0/share/charsets/ |

  +--------------------------+-------------------------------------------+

  mysql> SHOW VARIABLES LIKE '%collation%' ;

  +----------------------+-------------------+

  | Variable_name | Value |

  +----------------------+-------------------+

  | collation_connection | latin1_swedish_ci |

  | collation_database | utf8_general_ci |

  | collation_server | utf8_general_ci |

  +----------------------+-------------------+

  重新读取又出现乱码:

  mysql> select * from employee;

  +-------------+-----------+------------+------------+--

  | employee_id | last_name | first_name | birth | s

  +-------------+-----------+------------+------------+--

  | 12 | ? | ?? | 1978-12-11 | f

  | 13 | ? | ?? | 1978-12-11 | f

  | 14 | ? | ?? | 1978-12-11 | f

  | 15 | ? | ?? | 1978-12-11 | f

  | 16 | ? | ?? | 1978-12-11 | f

  | 17 | ? | ?? | 1978-12-11 | f

  +-------------+-----------+------------+------------+--

  所以我们需要在客户端设置系统能识别中文的编码gbk并没有保存到my.ini文件中。所以要修改my.ini文件

  在[mysql]段加入一下代码改成:default-character-set=gbk 这样设置就得到保存了。

  重启就可以了。

  mysql> show variables like '%character%';

  +--------------------------+----------------

  | Variable_name | Value+--------------------------

  +----------------| character_set_client | gbk

  | character_set_connection | gbk

  | character_set_database | utf8

  | character_set_results | gbk

  | character_set_server | utf8

  | character_set_system | utf8

  | character_sets_dir | C:/MySQL/MySQL

  +--------------------------+----------------

  mysql> SHOW VARIABLES LIKE '%collation%' ;

  +----------------------+-----------------+

  | Variable_name | Value |

  +----------------------+-----------------+

  | collation_connection | gbk_chinese_ci |

  | collation_database | utf8_general_ci |

  | collation_server | utf8_general_ci |

  +----------------------+-----------------+

  MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明

  需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:

  一、Windows

  1、中止MySQL服务

  2、在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可

  3、打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭

  4、启动MySQL服务

  二、Linux

  1、中止MySQL服务(bin/mysqladmin -u root shutdown)

  2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可

  3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭

  4、启动MySQL服务(bin/mysqld_safe &)

  非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置

  需要注意的是,当前数据库中已经存在的数据仍保留现有的编码方式,因此需要自行转码,方法在网上有很多,不再赘述

原文转自:http://blog.csdn.net/xyz_lmn/article/details/4170822