MySQL数据库物理迁移指的是将一个MySQL数据库从一个服务器迁移到另一个服务器,同时保留数据的物理存储
方法一:使用mysqldump工具
- 在源服务器上,使用mysqldump工具导出数据库。这将把数据库结构和数据转储到一个SQL文件中。
mysqldump -u [username] -p[password] --single-transaction --quick --lock-tables=false [database_name] > database_name.sql
请将方括号内的内容替换为实际的用户名、密码和数据库名称。
- 将导出的SQL文件传输到目标服务器。可以使用SCP、FTP或其他文件传输工具。
- 在目标服务器上,创建一个新的数据库(如果尚未创建):
mysql -u [username] -p[password] -e "CREATE DATABASE [database_name];"
- 将SQL文件导入到新创建的数据库中:
mysql -u [username] -p[password] [database_name] < database_name.sql
方法二:使用XtraBackup工具
XtraBackup是一个开源的MySQL备份工具,支持热备份和物理迁移。
- 在源服务器上,安装并配置XtraBackup。
- 使用XtraBackup创建一个完整的数据库备份:
innobackupex --user=[username] --password=[password] --databases="[database_name]" /path/to/backup
- 将备份文件传输到目标服务器。可以使用SCP、FTP或其他文件传输工具。
- 在目标服务器上,安装并配置XtraBackup。
- 准备备份文件,以便在目标服务器上恢复:
innobackupex --apply-log /path/to/backup
- 将备份文件复制到目标服务器的数据目录(通常位于
/var/lib/mysql
)。 - 更改数据目录的权限,使MySQL用户可以访问:
chown -R mysql:mysql /var/lib/mysql
- 重启MySQL服务:
systemctl restart mysql
注意:在执行物理迁移时,请确保在迁移过程中暂停源服务器上的写操作,以避免数据不一致。在迁移完成后,可以重新启动源服务器上的写操作。