在Linux上迁移MySQL数据库可以通过多种方法实现,以下是一些常见的步骤和方法:
mysqldump和mysql命令导出数据库
使用mysqldump命令导出数据库到一个SQL文件。
mysqldump -u username -p database_name > backup.sql
系统会提示你输入密码。
传输SQL文件
将导出的SQL文件传输到目标服务器。可以使用scp、rsync或其他文件传输工具。
scp backup.sql user@target_server:/path/to/destination/
导入数据库
在目标服务器上,使用mysql命令导入SQL文件。
mysql -u username -p new_database_name < /path/to/destination/backup.sql
系统会提示你输入新数据库的密码。
xtrabackup进行热备份xtrabackup是一个Percona提供的开源工具,可以进行MySQL的热备份,适用于InnoDB存储引擎。
安装xtrabackup
sudo apt-get install percona-xtrabackup-24 # 适用于Debian/Ubuntu
sudo yum install percona-xtrabackup-24 # 适用于CentOS/RHEL
准备备份
停止MySQL服务(如果需要),然后运行xtrabackup进行备份。
sudo systemctl stop mysql
xtrabackup --backup --target-dir=/path/to/backup --user=username --password=password
sudo systemctl start mysql
准备备份数据
如果备份的是主库,需要进行prepare操作。
xtrabackup --prepare --target-dir=/path/to/backup
恢复备份数据 将备份数据复制到目标服务器,并进行恢复。
rsync -av /path/to/backup/ user@target_server:/path/to/destination/
xtrabackup --copy-back --target-dir=/path/to/destination --datadir=/var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
systemctl restart mysql
mysqlpump进行并行备份mysqlpump是MySQL 5.7及以上版本提供的一个并行备份工具,类似于mysqldump,但支持并行处理。
导出数据库
mysqlpump -u username -p --databases database_name > backup.sql
传输SQL文件
scp backup.sql user@target_server:/path/to/destination/
导入数据库
mysql -u username -p new_database_name < /path/to/destination/backup.sql
通过以上方法,你可以在Linux上安全地迁移MySQL数据库。选择哪种方法取决于你的具体需求和环境。