换了工做要从原来的Oracle数据库转到用Mysql上来
安装了mysql 5.0 用mysql-front管理,以为太蛋疼,就安装了Toad for mysql,谁知出现中文乱码,网上查了很久没找到解决办法。说新建系统变量 NLS_LANG 为 AMERICAN_AMERICA.ZHS16GBK 的这个办法根本无论用。试了半天,发现这个方法管用。
在toad for mysql新建一个editor(pl/sql的查询语句和命令语句是要新建不一样的窗口的,没想到toad for mysql是不用的 直接一个editor窗口搞定)。输入
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
+--------------------------+---------------------------------+
| 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 | D:""share"charsets" |
+--------------------------+---------------------------------+
而MySQL字符集默认使用latin1,collation则使用latin1_swedish_ci。乱码是必然了
而Toad读取MySQL的character_set_system或者character-set-server设置决定Toad本地字符集。
重设MySQL默认字符集,查看官方文档后,设置以下:
在my.ini配置文件中增长以下2条设置
[mysqld]
character-set-server = utf8
character-set-filesystem = utf8
注意:5.1版后已经不支持 default-character-set=utf8 这样的配置语句了。
配置完以后不用重启系统,把Mysql的服务重启一下就好了。具体操做打开windows的服务界面,找到mysql这个服务,点重启动服务。
运行Toad。
查看variables,注意到都变成utf8了。mysql
导入数据,正常。
输入数据,正常。
ok啦!sql