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这是什么原因呢?

解决方案 »

  1.   

    原因多种多样,/root/newsdata.sql文件是什么编码?
    mysql>下边,你用的什么charset? 使用show variables like 'char%'可以得到直接mysql -u root -p ....<....,用的应该是my.ini中[mysql]下指定的default_character_set,如果没有指定,用的就是操作系统自带的LANG中指定的字符集这些信息你都提供出来,就一目了然了。
      

  2.   

    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
      

  3.   

    查看文件编码
    vi newsdata.sql  发现中文乱码
    然后
    :set fileencoding  
    文件中的中文不再是乱码
      

  4.   

    检查一下你的表的字符集是什么?参考下贴中的检查方法。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
    你如果set names 'xxxx' ; 一下。
      

  5.   

    试试这个吧,导入导出时指定字符集gbk。不过需要重新导出数据。1,数据库备份命令
    mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql2,导入数据库
    mysql -uroot -p --default-character-set=gbk
    use dbname
    source /root/newsdata.sql
      

  6.   

    导入数据库
    //连接db的时候设着一下字符集
    mysql -uroot -p --default-character-set=utf-8
    use dbname
    source /root/newsdata.sql