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这是什么原因呢?
............
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这是什么原因呢?
mysql>下边,你用的什么charset? 使用show variables like 'char%'可以得到直接mysql -u root -p ....<....,用的应该是my.ini中[mysql]下指定的default_character_set,如果没有指定,用的就是操作系统自带的LANG中指定的字符集这些信息你都提供出来,就一目了然了。
+--------------------------+----------------------------------------+
| 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
vi newsdata.sql 发现中文乱码
然后
:set fileencoding
文件中的中文不再是乱码
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
你如果set names 'xxxx' ; 一下。
mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql2,导入数据库
mysql -uroot -p --default-character-set=gbk
use dbname
source /root/newsdata.sql
//连接db的时候设着一下字符集
mysql -uroot -p --default-character-set=utf-8
use dbname
source /root/newsdata.sql