有一个 xx.sql 数据库文件,字符集是utf-8的,导入我的mysql就报错,扬声器响个不停。如何将这个文件转换为gbk的字符集 再导入呢?

解决方案 »

  1.   

    我现在问的不是编程题老大。。我是问:现在我这有一个从XXX网站上导出来的utf-8编码的user.sql数据库文件,想导入到我自己的库中,(用mysql的 source user.sql)但是里面有中文字符,所以会报错,所以先得将这个数据库文件里的数据转换为gbk编码的,才能正常导入。。 你的明白?
      

  2.   

    把你的user.sql 用文本编辑器打开(比如记录本),另存为 ansi 的就行了。如果还不行,就上传一个测试用的 xxx.sql 文件。这样别人可以模拟并了解你的实际问题可以上传到 http://www.access911.net/csdn
      

  3.   

    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  4.   

    导入时指定客户端代码为utf8, 或把文挡中的set names xxx(改为utf8)
    导入时,它会自动转换
      

  5.   

    400多M的SQL文件 难道用文本编辑器打开么 不会卡死?还有别的方法么!
      

  6.   

    试试看下面的方法:
    mysql --default-character-set=utf8 < xxx.sql
      

  7.   

    还有很多啊。比如 WORD, UltraEdit 等。
      

  8.   

    不明白了,为什么转成ansi也报错呢 扬声器一直在响文件头给大家看下:# Identify: MTI1OTU2NjE3NCw2LjAuMCxjdXN0b20sc2hlbGwsMQ==
    # <?exit();?>
     
     #------------------------------------------------
    -- Server version 5.0.26-Comsenz-log
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
    -- Table structure for table `cdb_members`
    --DROP TABLE IF EXISTS `cdb_members`;
    CREATE TABLE `cdb_members` (
      `uid` mediumint(8) unsigned NOT NULL auto_increment,
      `username` char(25) default NULL,
      `password` char(32) NOT NULL default '',
      `secques` char(8) NOT NULL default '',
      `gender` tinyint(1) NOT NULL default '0',
      `adminid` tinyint(1) NOT NULL default '0',
      `groupid` smallint(6) unsigned NOT NULL default '0',
      `groupexpiry` int(10) unsigned NOT NULL default '0',
      `extgroupids` char(20) NOT NULL default '',
      `regip` char(15) NOT NULL default '',
      `regdate` int(10) unsigned NOT NULL default '0',
      `lastip` char(15) NOT NULL default '',
      `lastvisit` int(10) unsigned NOT NULL default '0',
      `lastactivity` int(10) unsigned NOT NULL default '0',
      `lastpost` int(10) unsigned NOT NULL default '0',
      `posts` mediumint(8) unsigned NOT NULL default '0',
      `digestposts` smallint(6) unsigned NOT NULL default '0',
      `oltime` smallint(6) unsigned NOT NULL default '0',
      `pageviews` mediumint(8) unsigned NOT NULL default '0',
      `credits` int(10) NOT NULL default '0',
      `extcredits1` int(10) NOT NULL default '0',
      `extcredits2` int(10) NOT NULL default '0',
      `extcredits3` int(10) NOT NULL default '0',
      `extcredits4` int(10) NOT NULL default '0',
      `extcredits5` int(10) NOT NULL default '0',
      `extcredits6` int(10) NOT NULL default '0',
      `extcredits7` int(10) NOT NULL default '0',
      `extcredits8` int(10) NOT NULL default '0',
      `email` char(40) NOT NULL default '',
      `bday` date NOT NULL default '0000-00-00',
      `sigstatus` tinyint(1) NOT NULL default '0',
      `tpp` tinyint(3) unsigned NOT NULL default '0',
      `ppp` tinyint(3) unsigned NOT NULL default '0',
      `styleid` smallint(6) unsigned NOT NULL default '0',
      `dateformat` tinyint(1) NOT NULL default '0',
      `timeformat` tinyint(1) NOT NULL default '0',
      `pmsound` tinyint(1) NOT NULL default '0',
      `showemail` tinyint(1) NOT NULL default '0',
      `newsletter` tinyint(1) NOT NULL default '0',
      `invisible` tinyint(1) NOT NULL default '0',
      `timeoffset` char(4) NOT NULL default '',
      `newpm` tinyint(1) NOT NULL default '0',
      `accessmasks` tinyint(1) NOT NULL default '0',
      `editormode` tinyint(1) unsigned NOT NULL default '2',
      `customshow` tinyint(1) unsigned NOT NULL default '26',
      `xspacestatus` tinyint(1) NOT NULL default '1',
      PRIMARY KEY  (`uid`),
      UNIQUE KEY `username` (`username`),
      KEY `email` (`email`),
      KEY `groupid` (`groupid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1828024 DEFAULT CHARSET=gbk;--
    -- Dumping data for table `cdb_members`
    --
      

  9.   

    明明是gbk的啊 为什么导入mysql的话 扬声器老乱响报错呢 以前导入别的数据都不会啊!!
      

  10.   

    和下面一样,把你的语句直接贴到MYSQL命令工具中,然后找到第一个错误的语句并把错误信息贴出来以供分析。mysql> # Identify: MTI1OTU2NjE3NCw2LjAuMCxjdXN0b20sc2hlbGwsMQ==
    mysql> # <?exit();?>
    mysql>
    mysql>  #------------------------------------------------
    mysql> -- Server version    5.0.26-Comsenz-log
    mysql> /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    Query OK, 0 rows affected (0.00 sec)mysql> /*!40103 SET TIME_ZONE='+00:00' */;
    Query OK, 0 rows affected (0.00 sec)mysql> /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 *
    Query OK, 0 rows affected (0.00 sec)mysql> /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN
    ECKS=0 */;
    Query OK, 0 rows affected (0.00 sec)mysql> /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_
    /;
    Query OK, 0 rows affected (0.00 sec)mysql> /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    Query OK, 0 rows affected (0.00 sec)mysql>
    mysql> --
    mysql> -- Table structure for table `cdb_members`
    mysql> --
    mysql>
    mysql> DROP TABLE IF EXISTS `cdb_members`;
    Query OK, 0 rows affected (0.06 sec)mysql> CREATE TABLE `cdb_members` (
        ->   `uid` mediumint(8) unsigned NOT NULL auto_increment,
        ->   `username` char(25) default NULL,
        ->   `password` char(32) NOT NULL default '',
        ->   `secques` char(8) NOT NULL default '',
        ->   `gender` tinyint(1) NOT NULL default '0',
        ->   `adminid` tinyint(1) NOT NULL default '0',
        ->   `groupid` smallint(6) unsigned NOT NULL default '0',
        ->   `groupexpiry` int(10) unsigned NOT NULL default '0',
        ->   `extgroupids` char(20) NOT NULL default '',
        ->   `regip` char(15) NOT NULL default '',
        ->   `regdate` int(10) unsigned NOT NULL default '0',
        ->   `lastip` char(15) NOT NULL default '',
        ->   `lastvisit` int(10) unsigned NOT NULL default '0',
        ->   `lastactivity` int(10) unsigned NOT NULL default '0',
        ->   `lastpost` int(10) unsigned NOT NULL default '0',
        ->   `posts` mediumint(8) unsigned NOT NULL default '0',
        ->   `digestposts` smallint(6) unsigned NOT NULL default '0',
        ->   `oltime` smallint(6) unsigned NOT NULL default '0',
        ->   `pageviews` mediumint(8) unsigned NOT NULL default '0',
        ->   `credits` int(10) NOT NULL default '0',
        ->   `extcredits1` int(10) NOT NULL default '0',
        ->   `extcredits2` int(10) NOT NULL default '0',
        ->   `extcredits3` int(10) NOT NULL default '0',
        ->   `extcredits4` int(10) NOT NULL default '0',
        ->   `extcredits5` int(10) NOT NULL default '0',
        ->   `extcredits6` int(10) NOT NULL default '0',
        ->   `extcredits7` int(10) NOT NULL default '0',
        ->   `extcredits8` int(10) NOT NULL default '0',
        ->   `email` char(40) NOT NULL default '',
        ->   `bday` date NOT NULL default '0000-00-00',
        ->   `sigstatus` tinyint(1) NOT NULL default '0',
        ->   `tpp` tinyint(3) unsigned NOT NULL default '0',
        ->   `ppp` tinyint(3) unsigned NOT NULL default '0',
        ->   `styleid` smallint(6) unsigned NOT NULL default '0',
        ->   `dateformat` tinyint(1) NOT NULL default '0',
        ->   `timeformat` tinyint(1) NOT NULL default '0',
        ->   `pmsound` tinyint(1) NOT NULL default '0',
        ->   `showemail` tinyint(1) NOT NULL default '0',
        ->   `newsletter` tinyint(1) NOT NULL default '0',
        ->   `invisible` tinyint(1) NOT NULL default '0',
        ->   `timeoffset` char(4) NOT NULL default '',
        ->   `newpm` tinyint(1) NOT NULL default '0',
        ->   `accessmasks` tinyint(1) NOT NULL default '0',
        ->   `editormode` tinyint(1) unsigned NOT NULL default '2',
        ->   `customshow` tinyint(1) unsigned NOT NULL default '26',
        ->   `xspacestatus` tinyint(1) NOT NULL default '1',
        ->   PRIMARY KEY  (`uid`),
        ->   UNIQUE KEY `username` (`username`),
        ->   KEY `email` (`email`),
        ->   KEY `groupid` (`groupid`)
        -> ) ENGINE=MyISAM AUTO_INCREMENT=1828024 DEFAULT CHARSET=gbk;
    Query OK, 0 rows affected (0.08 sec)mysql>
    mysql> --
    mysql> -- Dumping data for table `cdb_members`
    mysql> --
    mysql>
      

  11.   

    罪行命令的时候source e:\data\user.sqlERROR 1062 (23000): Duplicate entry '??????' for key 2
    Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)ERROR 1062 (23000): Duplicate entry 'é??é??' for key 2
    Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected, 1 warning (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)
      

  12.   

    一句一句贴到MYSQL命令工具中,自然就知道哪句出错了。
      

  13.   

    刚才去phpmyadmin下看了导入的部分数据 中文名全变成乱码了 应该就是中文名报错。。但是不知道怎么办?             ??–??–?…” cfb67b7808a47490985f8f3fd3f52ab7 971c3152 0 1 1 0   222.240.143.34 1175059824 222.247.56.14 1253948171 1245648080 1239340681 51 4 29 240 265 40 -868 0 0 0 0 0 0 0000-00-00 0 0 0 0 0 0 1 1 1 0 9999 1 0 2 26 1 
          1869 ??‘??– 788e73e456ca35e2291c025f76ff3d71   0 0 10 0   222.240.143.34 1175003719 222.240.143.34 1191748853 1190871241 1183975100 2 0 2 0 14 0 0 0 0 0 0 0 0 0000-00-00 0 0 0 0 0 0 1 1 1 0 9999 1 0 2 26 1 
          1859 ?…¨???è?¤ 25f9e794323b453885f5181f1b624d0b   0 0 10 0   222.240.143.34 1175002621 58.44.34.147 1187565756 1175002621 0 0 0 0 0 0 0 0 0 0 0 0 0 0  0000-00-00 0 0 0 0 0 0 1 1 1 0 9999 1 0 2 26 0 
          1849 xixi 51737bfcac9e601ee053493d17d07f44 
      

  14.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码set names 'gbk';
      

  15.   

    比如, set name 'gbk';错误百出 set names 'gbk';
    还是不行,知道为什么csdn结贴率是0%的人那么多么?解决问题都解决不清楚,要么叫人家google要么让人家看文章,难道不知道实际情况不一样么。郁闷。
      

  16.   

    你要做的是,贴出你出错的语句 ,这样别人可以直接试验。或者你上传你的这个sql文件。 这个在前面已经讲过了。可惜你不愿意提供。