数据库A一切正常,现在我想生成一个和A完全等同的数据库.我这样操作:备份A,新建B,然后用A的备份restore到B.但是结果B中的汉字全成乱码了.
请问是哪个环节出了问题?该如何解决?谢谢!

解决方案 »

  1.   

    (1)导出数据库:mysqldump -uroot -p123456 --default-character-set=latin1 --set-charset=utf8 --opt olddatabase > newdatabase.sql    
    (2) 修改newdatabase.sql,在文件开头增加一条sql语句: “SET NAMES utf8;“,保存。    
    (3)mysql -hlocalhost -uroot my_db < newdatabase.sql
      

  2.   

    你用insert into B select * from A不就可以了吗
      

  3.   

    检查两个数据库的character-set是否一致
      

  4.   

    show variables like 'character_set_%';character_set_client  latin1
    character_set_collection latin1
    character_set_database   gbk
    character_set_results    latin1
    character_set_server     gbk
    character_set_system     utf8
      

  5.   

    是最后一行的“character_set_system    utf8”导致的吗?
      

  6.   

    Yeah,everybody opinion is right.You just keep your two database's charset the same as each other.