网站搜索

如何将所有 MySQL 数据库从旧服务器转移到新服务器


在服务器之间传输或迁移 MySQL/MariaDB 数据库通常只需要几个简单的步骤,但数据传输可能需要一些时间,具体取决于您要传输的数据量。

在本文中,您将了解如何将所有 MySQL/MariaDB 数据库从旧 Linux 服务器转移或迁移到新服务器,成功导入并确认数据存在。

重要笔记

  • 确保在具有相同发行版的两台服务器上安装相同版本的 MySQL。
  • 确保两台服务器上都有足够的可用空间来保存数据库转储文件和导入的数据库。
  • 永远不要考虑将数据库的 data 目录移动到另一台服务器。永远不要弄乱数据库的内部结构,如果这样做的话,你将来会遇到问题。

MySQL 数据库导出到转储文件

首先登录到旧服务器并使用 systemctl 命令停止 mysql/mariadb 服务,如下所示。

systemctl stop mariadb
OR
systemctl stop mysql

然后使用 mysqldump 命令将所有 MySQL 数据库转储到一个文件中。

mysqldump -u [user] -p --all-databases > all_databases.sql

转储完成后,您就可以传输数据库了。

如果你想转储单个数据库,你可以使用:

mysqldump -u root -p --opt [database name] > database_name.sql

MySQL 数据库转储文件传输到新服务器

现在使用 scp 命令将数据库转储文件传输到新服务器的主目录下,如图所示。

scp all_databases.sql [email :~/       [All Databases]
scp database_name.sql [email :~/       [Singe Database]

连接后,数据库将传输到新服务器。

MySQL 数据库转储文件导入到新服务器

MySQL 转储文件传输到新服务器后,您可以使用以下命令将所有数据库导入 MySQL。

mysql -u [user] -p --all-databases < all_databases.sql   [All Databases]
mysql -u [user] -p newdatabase < database_name.sql      [Singe Database]

导入完成后,您可以在 mysql shell 上使用以下命令验证两台服务器上的数据库。

mysql -u user -p
show databases;

MySQL 数据库和用户转移到新服务器

如果要将旧服务器上的所有 MySQL 数据库、用户、权限和数据结构移动到新服务器,可以使用 rsync 命令将 mysql/mariadb 数据目录中的所有内容复制到新服务器,如图所示。

rsync -avz /var/lib/mysql/* [email :/var/lib/mysql/ 

传输完成后,您可以将 mysql/mariadb 数据目录的所有权设置为用户和组 mysql,然后执行目录列表以检查所有文件是否已传输。

chown mysql:mysql -R /var/lib/mysql/
ls  -l /var/lib/mysql/

如何使用 GUI 迁移 MySQL 数据库

现代数据库工具使用户能够简化 MySQL 数据库迁移任务。主要因素是用户友好的图形界面,可指导他们完成迁移过程的每个步骤。只需单击几下即可完成任务配置 - 无需手动键入任何命令即可将 MySQL 数据库传输到新目标。

通常,此类工具支持传输整个数据库或其部分的各种方法。可以是备份和恢复、复制数据库、数据导入和导出等。

此外,MySQL 数据迁移工具可以是独立的解决方案,也可以是功能更强大的工具集(例如 dbForge Studio for MySQL)的一部分,适合涵盖所有其余的数据库任务。

就这样!在本文中,您学习了如何轻松地将所有 MySQL/MariaDB 数据库从一台服务器迁移到另一台服务器。与其他方法相比,您认为该方法如何?我们希望收到您通过下面的评论表联系我们的意见。