在服务器之间传输或迁移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 protected]:~/ [All Databases] # scp database_name.sql [email protected]:~/ [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 protected]:/var/lib/mysql/
传输完成后,您可以将mysql / mariadb数据目录的所有权设置为user和group mysql,然后执行目录列表以检查是否已传输所有文件。
# chown mysql:mysql -R /var/lib/mysql/ # ls -l /var/lib/mysql/
就这样! 在本文中,您学习了如何轻松地将所有MySQL / MariaDB数据库从一台服务器迁移到另一台服务器。 与其他方法相比,您如何找到这种方法? 我们希望通过下面的评论表联系我们。