之前由于使用的是默认字符集latin1,后来升级数据库后,并且安装了discuz论坛,其使用gbk字符集,因此导致从论坛去主页的时候,偶尔会出现主页乱码的情况,经过网上资料的查找,需要将latin1转换成为gbk字符集。于是就通过mysqldump -uroot -p --default-character-set=latin1 -set-charset=gbk --skip- opt databse > test.sql  这个命令将之前的字符集导入出来,并设置成为gbk 但是期间报错,Warning: mysqldump: ignoring option '--set-charset' due to invalid value 'gbk'然后重新建立test数据库,并设置其字符集为gbk CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;随后,将之前导出的sql文件,往回导。mysql -uroot -p --default-character-set=gbk -f test < test.sql 这个时候报错
ERROR at line 29047: Unknown command '\''.
ERROR 2005 (HY000) at line 29047: Unknown MySQL server host 'Buzzard','Buteo' (1)
ERROR at line 29367: Can't connect to the server请问大家,错误在哪里?如何解决?

解决方案 »

  1.   

    之前由于使用的是默认字符集latin1,后来升级数据库后,并且安装了discuz论---------------
    是在同一版本不同字符集间升级吗?
      

  2.   

    mysql的版本是5.0.45不是同一版本的。之前应该是mysql4.0xx的
      

  3.   

    打开sql文件 查找错误统一修改吧!
      

  4.   

    我觉得还是字符集的问题。可能还是数据导出的时候,无法进行set character=gkb大家有办法么?
      

  5.   

    你执行
    SHOW VARIABLES LIKE 'character_set_%';
    看看你的MYSQL版本是否支持GBK,从提示上看,不支持
      

  6.   

    老版本是4.0的?4.1版本才有字符集,所以忽略选项,你直接用MYSQLDUMP导出,
    记录中的是否有乱码?
      

  7.   

    之前由于使用的是默认字符集latin1
    -----------------------------
    你要到的库的字符集是什么?还有那些表的字符集和字段的字符集是否都采集继承了库的字符集?
    还有你是在dos的cmd下进行上面语句处理的吗?
      

  8.   

    --set-charset=gbk 这一项后面不能带"=gbk "的,因为其默认会取default-character-set的值的
      

  9.   

    老版本是4.0的?4.1版本才有字符集,所以忽略选项,你直接用MYSQLDUMP导出,
    记录中的是否有乱码?恩,有乱码..........
      

  10.   

    那把--default-character-set=latin1 改成--default-character-set=UTF8试试看
      

  11.   

    你要到的库的字符集是什么?还有那些表的字符集和字段的字符集是否都采集继承了库的字符集?
    还有你是在dos的cmd下进行上面语句处理的吗? 原本的库是默认使用latin1字符集,但是用了discuz,其相关的数据库使用的是gbk字符集。现在我是希望能把字符集统一称为gbk。
    那些语句我是用ssh登陆服务器执行的
      

  12.   

    那把--default-character-set=latin1改成--default-character-set=UTF8试试看还是乱的..........
      

  13.   

    你用WORD打开生成的文件试试,是否有提示选择字符集
      

  14.   


    恩恩,有的有的。我打开的是直接使用dump出来的文件,也确实让我选择编码,但是里面的编码没有一个能让那些乱码变成文字的
      

  15.   


    +--------------------------+----------------------------+
    | 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       | /usr/share/mysql/charsets/ | 但是,我即便是用--set-charset=utf8 也是报ignoring option '--set-charset' due to invalid value 'utf8'
      

  16.   

    mysql> show character set;
    +----------+-----------------------------+---------------------+--------+
    | Charset  | Description                 | Default collation   | Maxlen |
    +----------+-----------------------------+---------------------+--------+
    | big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 | 
    | dec8     | DEC West European           | dec8_swedish_ci     |      1 | 
    | cp850    | DOS West European           | cp850_general_ci    |      1 | 
    | hp8      | HP West European            | hp8_english_ci      |      1 | 
    | koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 | 
    | latin1   | cp1252 West European        | latin1_swedish_ci   |      1 | 
    | latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 | 
    | swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 | 
    | ascii    | US ASCII                    | ascii_general_ci    |      1 | 
    | ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 | 
    | sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 | 
    | hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 | 
    | tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 | 
    | euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 | 
    | koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 | 
    | gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 | 
    | greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 | 
    | cp1250   | Windows Central European    | cp1250_general_ci   |      1 | 
    | gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 | 
    | latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 | 
    | armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 | 
    | utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 | 
    | ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 | 
    | cp866    | DOS Russian                 | cp866_general_ci    |      1 | 
    | keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 | 
    | macce    | Mac Central European        | macce_general_ci    |      1 | 
    | macroman | Mac West European           | macroman_general_ci |      1 | 
    | cp852    | DOS Central European        | cp852_general_ci    |      1 | 
    | latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 | 
    | cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 | 
    | cp1256   | Windows Arabic              | cp1256_general_ci   |      1 | 
    | cp1257   | Windows Baltic              | cp1257_general_ci   |      1 | 
    | binary   | Binary pseudo charset       | binary              |      1 | 
    | geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 | 
    | cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 | 
    | eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 | 
    +----------+-----------------------------+---------------------+--------+
    36 rows in set (0.00 sec)从上面看,我的数据库是支持gbk的啊
      

  17.   

    这样试下看看:mysqldump -uroot -p --default-character-set=UTF8 --opt databse > test.sql;mysql -uroot -p test < test.sql;
      

  18.   


    第一步dump出来后,我打开文件看到 ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;结构这样的结尾。并且内容都是乱码。所以我没有做最后一步的测试。
      

  19.   


    你的原表设计是用的latin1你直接做
    mysqldump -uroot -p databse > test.sql;结果如何?
      

  20.   


    如果不在dump里面加上 --default-set-character=latin1 的话,出来的东西就是乱码。
      

  21.   

    那就先加上这个--default-set-character=latin1 ,这样先确保导出是正常的,然后修改导出的这个文件,把 create table 后面的 DEFAULT CHARSET=latin1替换为 DEFAULT CHARSET= utf8 或 gbk; 
      

  22.   


    我用了这个方法,并且在建立数据库的时候设置了字符集为gbk。导入到数据库后,在数据库直接查找内容的时候是乱码,但是将数据库导入的时候,查看导出文件又是正常。然后我用页面做测试,通过语句选择字段,在页面上出来的又是乱码。这到底是怎么回事啊?
      

  23.   

    如果我在那个页面select语句前,加上set names gbk。出来的就没问题。。
      

  24.   


    这个是因为程序端字符集设置的问题。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  25.   


    恩,我看到了。如果在前面增加set names 的确能解决那个问题。可是。数据库里面直接的选择还是 ???如下,这个有办法解决么?select * from birdindex limit 20;
    +-----------+----------+---------+---------------------------+-----------------------------+
    | cspcode   | birdname | booknum | liting                    | english                     |
    +-----------+----------+---------+---------------------------+-----------------------------+
    | 020490026 | ??       |       1 | Lerwa lerwa               | Snow Partridge              | 
    | 020490046 | ???      |       2 | Tetraogallus tibetanus    | Tibetan Snowcock            | 
    | 020490044 | ?????    |       3 | Tetraogallus altaicus     | Altai Snowcock              | 
    | 020490045 | ????     |       4 | Tetraogallus himalayensis | Himalayan Snowcock          | 
      

  26.   


    数据库里面直接的选择还是 ?  
    这个说法是不准确的! 只是你从mysql.exe 这个命令行工具中显示为乱码。
    同样,进行mysql.exe 后,你也需要设置mysql> set name 'gbk';另外你还需要到你的这个DOS窗体的左上角的属性中设置,字体,宋体。
      

  27.   

    这个你先保证转出来的正常,然后导入时,最好保证终端、set names '字符集'、表里面字符集要一致看看
      

  28.   


    你说的没错。的确不准确。使用命令,就可以啦。现在目前看,是没啥问题了。不过真是太麻烦了。数据库中有的表格里面数据如果直接dump出来看似没有问题,但是导入的时候又报错。只好用--skip-opt 的方式。但是这样的方式又缺少ENGINE=MyISAM AUTO_INCREMENT=21526 DEFAULT CHARSET=gbk; 这些信息哎,不过好在现在看似没有问题了。过两天再看看情况吧多谢大家的帮助!