将Mysql数据库转移到另一台计算机[关闭]

Posted

技术标签:

【中文标题】将Mysql数据库转移到另一台计算机[关闭]【英文标题】:Transfer Mysql database to another computer [closed] 【发布时间】:2022-01-23 07:59:24 【问题描述】:

我有一个 mysql 数据库已填满并在 Windows 计算机上运行,​​是否有任何工具可以将数据库传输到另一台计算机(运行 Ubuntu)?

否则,我将只写一个script 以将所有数据库放入SQL 并在另一台计算机上插入。只是想节省一些时间:)

谢谢大家。

【问题讨论】:

【参考方案1】:

您可以使用任何 gui 工具进行备份,例如 Mysql Administrator(Windows 上的http://dev.mysql.com/downloads/gui-tools/,Ubuntu 上的 aptitude install mysql-admin)或 phpmyadmin(Windows 上的http://www.phpmyadmin.net/home_page/index.php,Ubuntu 上的 aptitude install phpmyadmin),然后恢复它在另一台计算机上。

【讨论】:

【参考方案2】:

你说的工具已经存在:mysqldump

它转储到 sql,然后您可以将其复制到另一台机器并重新加载。

例如:

来源:

mysqldump -u username -p databasename > dumpfile.sql

然后使用 ftp/rsync/whatever 将文件移动到目标机器,并在那里创建一个空数据库以导入并运行:

mysql -u username -p databasename < dumpfile.sql

您还需要为可能已转移的任何用户设置权限,因为他们不在数据库中。

或者,您可以从 mysql 数据目录复制文件 - 但 mysqldump 是最简单/最可靠的方法。

值得注意的是,如果表名不在原始系统上,它们在一个系统上可能会区分大小写。这取决于两端的配置 - 特别是文件系统的区分大小写(或其他)。

【讨论】:

如果两个版本都支持它(我认为甚至 4.1 支持),使用“-e”选项应该会加快进程。 操作系统损坏无法执行mysqldump的情况如何?我听说您可以复制 .frm、.MYI 和 .MYD 文件。 在这种情况下,您可以复制整个 /var/lib/mysql/ 文件夹。适用于 myisam 表,认为 innodb 可能存在问题。您有时需要在新服务器上“创建数据库 ”,然后用复制的文件夹替换文件夹以让 mysql 注意到它 - 这样做的次数不足以正确理解变幻莫测! 解决方案是旧的。使用新的 mysql 工作台,您可以轻松导出/导入数据库。【参考方案3】:

所有版本的 MySQL 之间的磁盘文件是 100% 兼容的。您只需要注意文件名的大小写,因为它在 Unix 上很重要,而在 Windows 上有时才重要。

记得在复制之前停止 MySQL。 MyISAM 文件可以在运行时进行复制,但 InnoDB 文件这样做并不安全,而且 Windows 的 MySQL 默认为 InnoDB 文件。

【讨论】:

【参考方案4】:

使用 mysqldump 时要小心字符集,尤其是在 Windows 上。我更喜欢明确设置我的数据库使用的字符集并使用 --result-file=file 而不是使用 > 运算符,以免某些东西被破坏。

【讨论】:

【参考方案5】:

mysqldump 应该正确地转储它并保留数据库中任何内容的字符集。如果您不希望出现问题,建议迁移到相同版本的 mysql。

mysqldump 生成的文件不是文本文件,尽管看起来,不要用 notepad.exe 等编辑它,否则你会遇到麻烦。

第三方 gui 工具(尤其是 phpmyadmin)生成的转储通常不准确,不一定能正确恢复。

【讨论】:

【参考方案6】:

我经常发现自己使用这种单线的一些变体通过网络复制数据库。

mysqldump --opt --compress --user=username database | mysql --user=username2 --password=p2 --host=hostB -D database -C database

我最初在这里读到的:

http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/

【讨论】:

【参考方案7】:

您可以使用一个命令将它们全部导出,而不是一个一个地导出数据库。然后导入它们。 例如。

mysqldump -u username -p --all-databases > c:\alldbs.sql

PS- 最大的好处就是不会丢失用户权限。

【讨论】:

非常方便,适合我。谢谢。 在一个命令中恢复:mysql -u username -p &lt; alldbs.sql【参考方案8】:

有了新的mysql workbench(gui工具),你可以很方便的导出数据库,导入到你要迁移的数据库中。

【讨论】:

【参考方案9】:

来自 MySQL 文档: http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html

shell> mysqldump --quick db_name | gzip > db_name.gz

将包含数据库内容的文件传输到目标机器并在那里运行这些命令:

shell> mysqladmin create db_name
shell> gunzip < db_name.gz | mysql db_name

【讨论】:

以上是关于将Mysql数据库转移到另一台计算机[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将 TFS 2012 转移到另一台机器

如何将 ASP.NET 网站导出到另一台计算机 [关闭]

怎么把QQ我的收藏表情图片转移到另一台电脑上

如何将我的所有 python 库从一台机器转移到另一台机器[重复]

如何将内置的 Cython 扩展从 PC 转移到另一台?

转移wordpress到另一台主机