我正在将一个大型wordpress mysql db(1.49gb)从旧服务器移动到新服务器,我所做的是:
mysqldump -u root -p dbname > public_location/db.sql
然后我做了一个:
wget http://oldserver/db.sql
我在新服务器上创建了数据库,创建了用户,然后:
mysqldump -u root -p dbname < db.sql
它表示转储已完成,但为什么新服务器上的数据库仍为空?我根本看不到任何桌子。
答案 0 :(得分:4)
不要使用输入文件在新服务器上调用mysqldump
,而只需调用mysql
mysql -u root -p dbname < db.sql
你可以,如果你很勇敢,第二个VPS通过TCP打开旧版本的端口3306并且你有一个能够写入的用户帐户root@oldserver
,可以在一个动作中执行此操作:
# Pipe the dump directly from the old vps to the new vps:
mysqldump -uroot -p dbname | mysql -h newserver -uroot -p dbname
我不会在互联网上尝试它,但我已经在局域网上多次完成了它。
最后,如果您存储了需要与数据库一起迁移的函数和过程,请不要忘记--routines
参数。没有它,他们不会进入垃圾场。
mysqldump --routines -u root -p dbname > public_location/db.sql