设为首页
收藏本站
淘宝精选
开启辅助访问
登录
注册后绑定Q登陆
手机号登录
手机号码,快捷登录
微信登录
QQ登录
快捷导航
发布信息
搜索
搜索
支持我们
使用96IE来支持论坛
首页
任务
勋章
签到
签到等于每天打卡
导读
邀请码
装机必备的软件、去广告版
装机助手
装机网
精品操作系统下载
免费邀请码
记录
Doing
每日签到
本版
帖子
用户
PCOS技术网
»
首页
›
≡技术交流≡
›
电脑技术交流
›
关于mysql 数据导入导出乱码问题
返回列表
发新帖
查看:
618
|
回复:
2
关于mysql 数据导入导出乱码问题
[复制链接]
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
发表于 2009-10-6 22:05
|
广东
|
显示全部楼层
|
阅读模式
关于mysql 数据导入导出乱码问题
mysql> select * from table into outfile 'c:\\table.txt' where 条件
(或selet * into outfile from table where 条件 )
导出来的数据会出现中文乱码情况。同时使用
mysql>load data local infile 'c:\\\\table.txt' into table `table`
插入的数据也会出现乱码情况。
究其原因,这是mysql服务器
系统
变量中的character_set_database中默认的字符集问题
。
常见 mysql5.1中文手册 13.2.5. LOAD DATA INFILE语法
……
由character_set_database系统变量指示的字符集被用于解释文件中的信息。SET NAMES
和character_set_client的设置不会影响对输入的解释。
……
我的解决方法:
首先在windows平台下mysql用作源导出数据库
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
| character_sets_dir | D:\\mysql\\share\\charsets\\ |
+--------------------------+----------------------------+
查看character_set_database,这里是latin1,latin1是装不了大字符集的
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql> select * from table into outfile 'c:\\table.txt' where 条件
在freebsd平台下
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
|
+--------------------------+----------------------------+
同样显示latin1
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql>load data local infile '/home/table.txt' into table `table`;
显示查看即可!
这里最好在两台服务器的character_set_database参数相同,当然我们还可以使用gbk等字符集来进行调整,看情况
定义默认编码字符集,格式如下:
mysqldump.exe -u xxx -ppass --default-character-set=utf8 freshbug_database > fb_dat_utf8.sql
PCOS系统下载站:http://zhuangji.wang
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
抢沙发
千斤顶
显身卡
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
楼主
|
发表于 2009-10-6 22:05
|
广东
|
显示全部楼层
关于mysql 数据导入导出乱码问题
关于mysql 数据导入导出乱码问题
mysql> select * from table into outfile 'c:\\table.txt' where 条件
(或selet * into outfile from table where 条件 )
导出来的数据会出现中文乱码情况。同时使用
mysql>load data local infile 'c:\\\\table.txt' into table `table`
插入的数据也会出现乱码情况。
究其原因,这是mysql服务器系统变量中的character_set_database中默认的字符集问题
。
常见 mysql5.1中文手册 13.2.5. LOAD DATA INFILE语法
……
由character_set_database系统变量指示的字符集被用于解释文件中的信息。SET NAMES
和character_set_client的设置不会影响对输入的解释。
……
我的解决方法:
首先在windows平台下mysql用作源导出数据库
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
| character_sets_dir | D:\\mysql\\share\\charsets\\ |
+--------------------------+----------------------------+
查看character_set_database,这里是latin1,latin1是装不了大字符集的
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql> select * from table into outfile 'c:\\table.txt' where 条件
在freebsd平台下
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
|
+--------------------------+----------------------------+
同样显示latin1
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql>load data local infile '/home/table.txt' into table `table`;
显示查看即可!
这里最好在两台服务器的character_set_database参数相同,当然我们还可以使用gbk等字符集来进行调整,看情况
定义默认编码字符集,格式如下:
mysqldump.exe -u xxx -ppass --default-character-set=utf8 freshbug_database > fb_dat_utf8.sql
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
楼主
|
发表于 2009-10-6 22:05
|
广东
|
显示全部楼层
关于mysql 数据导入导出乱码问题
关于mysql 数据导入导出乱码问题
mysql> select * from table into outfile 'c:\\table.txt' where 条件
(或selet * into outfile from table where 条件 )
导出来的数据会出现中文乱码情况。同时使用
mysql>load data local infile 'c:\\\\table.txt' into table `table`
插入的数据也会出现乱码情况。
究其原因,这是mysql服务器系统变量中的character_set_database中默认的字符集问题
。
常见 mysql5.1中文手册 13.2.5. LOAD DATA INFILE语法
……
由character_set_database系统变量指示的字符集被用于解释文件中的信息。SET NAMES
和character_set_client的设置不会影响对输入的解释。
……
我的解决方法:
首先在windows平台下mysql用作源导出数据库
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
| character_sets_dir | D:\\mysql\\share\\charsets\\ |
+--------------------------+----------------------------+
查看character_set_database,这里是latin1,latin1是装不了大字符集的
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql> select * from table into outfile 'c:\\table.txt' where 条件
在freebsd平台下
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| 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 | gbk|
| character_set_system | utf8 |
|
+--------------------------+----------------------------+
同样显示latin1
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
mysql>load data local infile '/home/table.txt' into table `table`;
显示查看即可!
这里最好在两台服务器的character_set_database参数相同,当然我们还可以使用gbk等字符集来进行调整,看情况
定义默认编码字符集,格式如下:
mysqldump.exe -u xxx -ppass --default-character-set=utf8 freshbug_database > fb_dat_utf8.sql
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册后绑定Q登陆
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页