首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL4迁移到MySQL5数据库

如何将MySQL4迁移到MySQL5数据库
EN

Stack Overflow用户
提问于 2012-07-30 16:23:48
回答 4查看 6.1K关注 0票数 1

我有一个由MySQL4创建的数据库(db4)和一个由MySQL5创建的数据库(db5)。db4包含几个具有字符集密码和几个索引的表,但没有使用MySQL“latin1”函数加密的数据。db5为空。

我想将所有的表和索引从db4迁移到db5 (它们实际上在同一服务器上)。理想情况下,这应该在短时间内完成,而不会丢失任何信息。

要从MySQL4下载完整的数据库并随后将数据插入到db5,需要使用哪些终端命令?我必须重新创建索引吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-01 20:48:08

也可以使用以下命令在单个步骤中完成此操作:

代码语言:javascript
复制
 mysqldump -u dbo4 --password="..." --default-character-set="latin1" db4 | mysql -S /tmp/mysql5.sock -u dbo5 --password="..." --default-character-set="latin1" db5

不幸的是,带有特殊字符的标准值没有正确导入,似乎没有办法避免这种情况:How to maintain character-set of standard-values when uploading MySQL-dump

票数 1
EN

Stack Overflow用户

发布于 2012-07-30 16:29:39

您可以使用mysqldump在mysql4中转储数据库。然后使用mysql命令上传到MySQL5。

代码语言:javascript
复制
mysqldump dbname > file
mysql dbname < file

所有索引都将自动重新创建。

票数 2
EN

Stack Overflow用户

发布于 2015-06-22 21:44:57

如果其他人需要将数据库从Mysql4迁移到Mysql5,我这样做了。

  1. 从mysql4服务器转储数据库

(source) -uuser -ppass db4 >db4.sql

  • 修复一些语法问题mysqldump

代码语言:javascript
复制
    # change comment style from -- to #
    sed -r -i -e 's/^--(.*)$/#\1/' db4.sql
    # change type declaration keyword from "TYPE" to "ENGINE"
    sed -i -e 's/) TYPE=/) ENGINE=/' db4.sql
    # adapt  timestamp field definition
    sed -i -e 's/timestamp(14) NOT NULL,$/timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,/' db4.sql

  1. 在mysql5服务器上现在可以导入修改后的SQL转储

mysql -uuser -ppass db5 < db4.sql

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11717727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档