如何将所有 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 user@example.com:~/ [All Databases] # scp database_name.sql user@example.com:~/ [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/* user@example.com:/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 数据库从一台服务器迁移到另一台服务器。与其他方法相比,您觉得这种方法如何?我们希望通过下面的评论表与我们联系,听取您的意见。