环境:在windows下建立的数据库,编码一律是GBK
我实验通过的方法:
一,导出结构性数据:mysqldump -u root 数据名 >filename //文件名任取,可取txt
mysqldump -u root 数据名 该数据库表名 >filename //只导出数据库某个表
二,导出数据:mysql -uroot 数据库名(已存在) < 上文的filename
or 在进入数据库mysql> source filename.txt //这样也同上文一样。
注意,filename要在当前目录。
三,乱码解决:在源数据库检查"\s",即显示出server,client,session,connect等编码设置。
如果,更改现数据库为源数据编码的方法:mysqld_safe -u root --character_set_sever=gbk &
然后mysql -u root 登录,"\s"检查character_set_server编码是否同源数据一样(应该一样了)
然后用\C utf8 即拿令将改变客户端编码为utf8...... 此时,就可以在linux下看到windows移植过来的中文内容了。注意,linux客户端为utf8.(mysql) ,其余的同源数据库设置。
从网上看到下面的方法, 因为麻烦没有遂一尝试,有时间大家可以尝试:
导出旧数据库结构(mysql4)
#./bin/mysqldump -uroot -d olddb > /tmp/olddb_create_table.sql //只转结构
导出数据,不含结构
#./bin/mysqldump -uroot -t --default-character-set=gb2312 olddb > /tmp/olddb_data.sql //只转数据建立新数据库(mysql5)
#./bin/mysql -uroot
#>create database newdb default character set utf8;
#>use newdb;
导入数据库表结构
#>source /sqldata/olddb_create_tabe.sql;
导入数据库数据
#>set names gb2312;
#>source /sqldata/olddb_data.sql;
|