MySQL数据库编码转换方法[原创]
今日在QQ群上看到有朋友问MySQL编码转换问题,所有总结一下我以往转换的方法,供各位朋友参考,如果有更好的办法也希望大家提供。由于现在许多服务器默认连接都使用latin1字符集,而目前流行的PHP软件则喜欢utf8字符集,所以以从latin1转到utf8为例(数据库版本在4.1或者上,以下版本一般都没有字符集的问题)。
[color=Red]转换的基本思想是把数据库用原字符集把数据导出,然后用新的字符集把数据导入。[/color]
现假设数据库名是 21php,数据库连接的用户和密码都是21php,连接主机是 localhost。
下面是转换操作步骤,
1. 导出
mysqldump -h localhost -u 21php -p21php --opt --compatible=mysql40 --default-character-set=latin1 21php>21php.sql
其中参数--compatible=mysql40是为了保证导出的文件不包含字符集设置。
2. 创建基于新字符集的数据库(21phpnew),
CREATE DATABASE `21phpnew` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
3. 导入数据
mysql -h localhost -u 21php -p21php 21phpnew --default-character-set=utf8 <21php.sql
运行后数据库21phpnew的数据就是新的编码utf8了。
个人经验,希望对大伙有用, 如有问题,请在论坛发表。
回复: MySQL数据库编码转换方法[原创]
沙发回复: MySQL数据库编码转换方法[原创]
感谢楼主,正为这个发愁呢回复: MySQL数据库编码转换方法[原创]
将此文发表到我QQ空间了.哈哈.回复: MySQL数据库编码转换方法[原创]
LOCK TABLES `com_login` WRITE;/*!40000 ALTER TABLE `com_login` DISABLE KEYS */;
INSERT INTO `com_login` VALUES (1,'admin','2007-12-03','21232f297a57a5a743894a0e4a801fc3'),(2,'wuwu','2007-12-05','2d7f18799d06dbe3bf5a44495af54cca');
/*!40000 ALTER TABLE `com_login` ENABLE KEYS */;
UNLOCK TABLES;
生成数据有 lock属性,如何去掉?
太强悍了,厉害...........
太强悍了,厉害...........[img]http://www.domain.cn/club/images/default/sigline.gif[/img]
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。---[url=http://www.paoxiaoshuo.com/1/1979/]魔兽剑圣异界纵横[/url]
[url=http://www.wowan.com/]小游戏[/url] [url=http://www.paoxiaoshuo.com/0/477/]极品家丁[/url] [url=http://www.paoxiaoshuo.com/1/1837/]龙蛇演义[/url] [url=http://www.paoxiaoshuo.com/0/296/]恶魔法则[/url] [url=http://www.paoxiaoshuo.com/0/654/]飞升之后[/url] [url=http://www.paoxiaoshuo.com/4/4157/]异界枪神[/url] [url=http://www.paoxiaoshuo.com/1/1737/]凡人修仙传[/url] [url=http://www.paoxiaoshuo.com/2/2340/]魔兽领主[/url] [url=http://www.paoxiaoshuo.com/0/916/]超级农民[/url] [url=http://www.paoxiaoshuo.com/0/477/]极品公子[/url]
页:
[1]