mysql使用source命令导入数据 乱码!

yuanxuran0101 2010-07-01 05:52:01
mysql>source /root/newsdata.sql;
............
Query OK, 1 row affected, 3 warnings (0.00 sec)

Query OK, 1 row affected, 3 warnings (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NULL'

然后查看输入的数据发现中文的地方都是乱码

但是使用下面的导入方式数据正常

]# mysql -uroot -p ithinkeryq</root/newsdata.sql

这是什么原因呢?
...全文
1989 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
idision 2012-03-15
  • 打赏
  • 举报
回复
导入数据库
//连接db的时候设着一下字符集
mysql -uroot -p --default-character-set=utf-8
use dbname
source /root/newsdata.sql
huaiping 2010-07-15
  • 打赏
  • 举报
回复
试试这个吧,导入导出时指定字符集gbk。不过需要重新导出数据。

1,数据库备份命令
mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql

2,导入数据库
mysql -uroot -p --default-character-set=gbk
use dbname
source /root/newsdata.sql
ACMAIN_CHM 2010-07-01
  • 打赏
  • 举报
回复
检查一下你的表的字符集是什么?

参考下贴中的检查方法。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码


你如果set names 'xxxx' ; 一下。
yuanxuran0101 2010-07-01
  • 打赏
  • 举报
回复
查看文件编码
vi newsdata.sql 发现中文乱码
然后
:set fileencoding
文件中的中文不再是乱码
yuanxuran0101 2010-07-01
  • 打赏
  • 举报
回复
mysql> show variables like 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.01 sec)

/etc/my.cnf

default-character-set=gbk

/root/newsdata.sql文件编码 怎么现身文件编码啊? 是下面吗?
]# file newsdate.sql
newsdate.sql: ISO-8859 text, with very long lines



zuoxingyu 2010-07-01
  • 打赏
  • 举报
回复
乱码无处不在啊。
iihero 2010-07-01
  • 打赏
  • 举报
回复
原因多种多样,/root/newsdata.sql文件是什么编码?
mysql>下边,你用的什么charset? 使用show variables like 'char%'可以得到

直接mysql -u root -p ....<....,用的应该是my.ini中[mysql]下指定的default_character_set,如果没有指定,用的就是操作系统自带的LANG中指定的字符集

这些信息你都提供出来,就一目了然了。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧