mysql 3.23.49,将旧的3.23.49 MySQL数据库转移到5.0.51 MySQL数据库 – 用ANSI和UTF-8编码...

我想将3.23.49 MySQL数据库传输到5.0.51 MySQL数据库.现在我已经导出了SQL文件,我已经准备好导入了.我查看了sql文件,记事本向我显示文件是用ANSI编码的.我查看了值,其中一些是ANSI,其中一些是UTF-8.什么是最好的方法?

>我应该在记事本中更改编码吗?

>我应该使用ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;?

>我应该使用iconv吗?

>我是否必须查看每个表并进行必要的更改?

> Whate是导入的设置? MYSQL323兼容模式和编码latin1?

>如果php脚本使用其他编码,我是否必须注意某些事情?

谢谢你的提示!

解决方法:

我四年前将MySQL 4.0数据库(也没有字符编码的概念)转换为MySQL 5.0,所以BTDT.

但首先,没有“ANSI”字符编码;这是a misconception and a misnomer that has caught on from the early versions of Windows(有ANSI escape sequences,但它们与字符编码无关).你肯定会看到Windows-1252编码的文本.您应该将该文本转换为UTF-8,因为您最有可能保持所有使用的字符完整(UTF-8是Unicode编码,Unicode包含可以使用Windows-125x编码的所有字符,但在不同的代码点).

我使用了iconv和recode程序(在MySQL服务器上运行的Debian GNU / Linux系统上)将MySQL导出的Windows-1252编码文本(由phpMyAdmin创建)转换为UTF-8.使用适合您的任何程序或程序组合.

至于你的问题:

>你可以试试,但它可能不起作用.特别是,您可能无法使用记事本或其他文本编辑器打开大型数据库转储.

>取决于. ALTER TABLE … CONVERT TO …不仅仅是转换编码.

>见上文.

>是的.您应该将每个表的字符编码和要导入数据的每个文本字段设置为utf8(使用任何utf8_ … collat​​ion最适合您的目的或数据). ALTER TABLE … CONVERT TO …就是这样. (但见2.)

>我不认为MYSQL323在这里很重要,因为你的导出只包含CREATE,INSERT和ALTER语句.但请先检查手册(phpMyAdmin中设置旁边的“?”图标). latin1 means “Windows-1252” in MySQL 5.0,这样可能会有效,您必须跳过导入的手动转换.

>我不这么认为; PHP is not yet Unicode-aware.重要的是PHP脚本如何处理数据.通常,使用该数据生成的文本资源的Content-Type头字段应该以;字符集= UTF-8.

另外请注意,您不应再使用MySQL 5.0.x.当前的稳定版本是MySQL 5.5.18.“根据MySQL支持生命周期策略,active support for MySQL 5.0 ended on December 31, 2009.MySQL 5.0现在处于扩展支持阶段.” MySQL 5.0.0 Alpha已于2003年12月22日发布,扩展支持预计将在2011-12-31(今年)之后的整整8年结束.

标签:mysql,encoding,migration,transfer

来源: https://codeday.me/bug/20190610/1209179.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值