最近我需要将我的服务器更改为另一个网站托管提供商的服务器。为此,我发现我的 MySQL 数据库大小太大,无法使用我拥有的访问权限进行下载和上传。
使用 phpMyAdmin,我可以从当前的 MySQL 服务器导出并直接导入到新的 MySQL 服务器,这样就不必下载数据了?
答案1
您的短语“我拥有的访问权限”很有趣。您的带宽受限吗?空间受限吗?Shell 受限吗?解释这一点将有助于明确更适合您的特定参数的解决方案。
为了将数据库从一台机器传输到另一台机器,有传输文件。您可以通过几种不同的方式进行传输:
1.)复制整个mysql目录(当然是在停止mysql之后)
rsync -a 主主机:/var/lib/mysql/ smaecond_host:/var/lib/mysql/
2.) 使用 mysqldump 将数据库转储到文件然后传输该文件:
在主服务器上:
mysqldump > [local_file]
rsync [local_file] secondary:host
在新服务器上:
mysql < [local_file]
3.) 如果你可以亲自访问其中一个或两个网站,Sneakernet 可能是一个不错的选择
如果带宽有限,可以使用 --bwlimit 开关来限制传输速率。如果空间有限,那么问题可能就大得多了。
答案2
这不使用 phpMyAdmin,因此可能不适用于您的情况。
如果使用 MySQL 并且您有 shell 访问权限,请考虑使用带有管道的 mysqldump。
http://www.cyberciti.biz/faq/mysqldump-pipe-mysql-output-and-input/
请注意,这可以锁定两个服务器上的表。此外,如果您不使用 SSH,数据将以纯文本形式发送。我经常在快速的专用网络链接上使用此方法。