mysqldump字符集问题
我有一个数据库,其中存储的数据用GBK编码。现在我想对它进行完全转储,并将转储文件设置为utf8。这样我可以将整个数据库从GBK转换为utf8。mysqldump实用程序似乎是正确的选择,我刚刚查看了mysqldump文档,它似乎使用了utf8字符集。所以我的问题是我能跟你一起去吗mysqldump字符集问题,mysql,character-encoding,mysqldump,Mysql,Character Encoding,Mysqldump,我有一个数据库,其中存储的数据用GBK编码。现在我想对它进行完全转储,并将转储文件设置为utf8。这样我可以将整个数据库从GBK转换为utf8。mysqldump实用程序似乎是正确的选择,我刚刚查看了mysqldump文档,它似乎使用了utf8字符集。所以我的问题是我能跟你一起去吗 mysqldump mydatabase > dump.sql 这对我来说行吗,mysqldump会自动将我的GBK数据库转换为utf8吗?由于所有的表最初都有一个bgk字符集,如果我想将转储文件导入到另一个
mysqldump mydatabase > dump.sql
这对我来说行吗,mysqldump会自动将我的GBK数据库转换为utf8吗?由于所有的表最初都有一个bgk字符集,如果我想将转储文件导入到另一个utf8数据库中,这也行吗
我想将转储文件导入另一个utf8数据库,will
那也行吗
在mysql中,字符集在连接、表、字段、ecc等多个级别上分配。
假设旧数据库中的所有这些级别都使用字符集GBK,而新数据库中的所有这些级别都使用字符集utf8,那么您只需为每个级别替换字符集声明
假设这是转储文件dump.sql的一部分
你需要的是把它转换成
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL auto_increment,
`myname` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1065 ;
你可以用sed做这个
现在,该文件已准备好正确导入utf8数据库
CREATE TABLE IF NOT EXISTS `mytable` (
`id` int(11) NOT NULL auto_increment,
`myname` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1065 ;
sed -i 's/gbk/utf8/g' dump.sql