在我们把 freelamp.com 基于 WordPress 架构的AWS 新加坡站点迁移到 freelamp.skyone.net 阿里云华东的时候,使用 wp-cli 让我们快速的实现了站点的迁移。以下是简明步骤:
首先需要去 AWS 把数据库从 RDS 用 mysqldump 导出,然后把导出的SQL文件拷贝到阿里云站点。
在阿里云本地创建一个数据库,然后用 grant 命令赋予数据库的用户名和密码。
grant all on freelamp_dbname.* to dbuser@localhost identified by ‘dbpass’;
flush privileges;
由于数据库字符集以及 MySQL 版本的不同,我们需要把 mysqldump 导出的数据库 SQL 文件中的字符集做修改,然后直接导入数据库
sed -e ‘s/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g’ freelamp.sql|mysql freelamp_dbname
由于 WP 站点有附件等放在 WP 目录下,所以,我们需要把 AWS 站点上的整个 WP 站点目录打包,再下载到阿里云后解压到 Web 的 DocumentRoot 下。 (当然也可以用 rsync 来处理)
修改 wp-config.php 文件, 把其中的数据库相关的用户名,密码, 数据库名按照我们 grant 语句里的参数做相应的修改。
如果不出意外的话,在 WP 站点目录下,运行 wp 命令,应该会有帮助提示,而不是报错。如果有报错的话,表示数据库设置有问题,需要确认数据库的设置。
接下来我们就可以用三条 update 语句,把域名修改一下,整个的 WP 站点就迁移完成了。
$ wp option upda