一个客户让我迁移他的 MySQL 数据库:服务器没有可用空间,而且它还有一个非常大的表坏了,所以我不能转储它。
由于缺乏可用空间,我无法修复它。
问题:有没有办法将 MySQL 数据库数据文件物理移动到另一台服务器并将它们用于“新”MySQL?
您可以执行以下操作:
STEP 01) 在旧服务器上, service mysql stop
STEP 02) 在旧服务器上, rsync -av --progress /var/lib/mysql root@10.1.2.40:/var/lib/mysql
STEP 03) 在新服务器上, chown -R mysql:mysql /var/lib/mysql
STEP 04) 在新服务器上, service mysql start
确保/var/lib/mysql
新服务器上的磁盘安装更大
您还可以将其即时迁移到另一台服务器,通过管道和 SSH 发送数据。例如,如果目标主机具有不同的 MySQL 版本,这将很有用。
我刚刚写了一篇博客文章解释了我是如何做到的:
http://blog.techutils.space/2016/02/on-fly-database-migration-between-two.html
那里有解释,但如果您不在乎,只需运行如下所示的内容。
目标主机:
nc -l 3456 | \
gunzip | \
pv | \
mysql -u tdb_user -ptdb_pass targetdatabase
Run Code Online (Sandbox Code Playgroud)
源主机:
mysqldump -u sdb_user -psdb_pass sourcedatabase | \
pv | \
gzip | \
ssh sshuser@targethost nc 127.0.0.1 3456
Run Code Online (Sandbox Code Playgroud)