在Linux上迁移MySQL数据库,通常有两种方法:使用mysqldump
工具或直接复制数据库文件
方法一:使用mysqldump
工具
首先,确保你已经安装了MySQL服务器和客户端。如果没有安装,可以使用以下命令进行安装:
对于Debian/Ubuntu系统:
sudo apt-get update
sudo apt-get install mysql-server mysql-client
对于CentOS/RHEL系统:
sudo yum install mysql-server mysql-client
使用mysqldump
命令导出源数据库的备份文件。假设源数据库名为source_db
,目标数据库名为destination_db
,用户名和密码分别为source_user
和source_password
:
mysqldump -u source_user -p source_password source_db > source_db_backup.sql
这将在当前目录下生成一个名为source_db_backup.sql
的文件,其中包含了源数据库的所有表结构和数据。
使用mysql
命令将导出的备份文件导入到目标数据库中。假设目标数据库的用户名和密码分别为destination_user
和destination_password
:
mysql -u destination_user -p destination_password destination_db < source_db_backup.sql
输入目标数据库的密码后,所有数据将被导入到目标数据库中。
方法二:直接复制数据库文件
首先,找到源数据库和目标数据库的数据目录。通常情况下,它们分别位于以下路径:
/var/lib/mysql/source_db
/var/lib/mysql/destination_db
请注意,这些路径可能因系统和MySQL安装方式的不同而有所差异。你可以通过运行mysqladmin -u root -p status
命令来查看当前MySQL实例的数据目录。
在源数据库数据目录中找到ibdata1
文件,这是MySQL用于存储元数据和锁信息的文件。请确保在复制过程中不要修改此文件。
将整个源数据库数据目录(包括ibdata1
文件)复制到目标数据库数据目录。例如,使用cp
命令:
sudo cp -R /var/lib/mysql/source_db/* /var/lib/mysql/destination_db/
重启MySQL服务器以使更改生效。这可以通过以下命令完成:
对于Debian/Ubuntu系统:
sudo systemctl restart mysql
对于CentOS/RHEL系统:
sudo service mysqld restart
完成上述步骤后,源数据库将被迁移到目标数据库中。请注意,这种方法可能会导致一些权限和配置问题,因此在执行此操作之前,请确保备份所有相关数据。