使用All-in-One Migration迁移WP时数据库恢复99%报错的解决方法
问题描述
我在EC2实例上搭建了PHP、MySQL、Apache环境并部署了WordPress,已完成以下配置:
- 修改
/etc/php/8.1/apache2/php.ini:调整了upload_max_filesize、post_max_size、max_execution_time、max_input_time、memory_limit、max_file_uploads参数以提升文件上传限制 - 修改
/etc/apache2/apache2.conf:在<Directory /var/www/>中设置AllowOverride All以启用.htaccess - 修改
/var/www/html/wp-config.php:配置数据库凭证,并添加define('FS_METHOD', 'direct'); - 修改
/etc/ssh/sshd_config:开启密码认证
使用All-IN-ONE-MIGRATION插件迁移时,文件导入、提取均完成100%,但数据库恢复到99%时出现以下错误:
GET https://35myip6/wp-admin/admin-ajax.php?action=ai1wm_status&ai1wm_import=1&secret_key=x2huyD7Y84n0&_=1704795105444 net::ERR_CONNECTION_REFUSED
load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils&ver=6.4.2:2
POST http://35.myip---18/wp-admin/admin-ajax.php?action=ai1wm_import&ai1wm_import=1 500 (Internal Server Error)

解决步骤
1. 检查并调整PHP与Apache的超时及内存参数
确认配置参数足够支撑大数据库恢复,示例调整如下:
- 编辑
/etc/php/8.1/apache2/php.ini:upload_max_filesize = 256M post_max_size = 256M max_execution_time = 300 max_input_time = 300 memory_limit = 512M max_file_uploads = 20 - 编辑
/etc/apache2/apache2.conf添加超时设置:Timeout 300 - 重启服务生效:
sudo systemctl restart apache2 sudo systemctl restart php8.1-fpm
2. 验证WordPress数据库用户权限
确保数据库用户拥有足够权限操作目标数据库:
- 登录MySQL控制台:
sudo mysql -u root -p - 授予全权限(替换
wp_user和wp_db为实际信息):GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES;
3. 修复admin-ajax.php的访问权限与配置
- 调整文件权限:
sudo chown www-data:www-data /var/www/html/wp-admin/admin-ajax.php sudo chmod 644 /var/www/html/wp-admin/admin-ajax.php - 启用Apache重写模块:
sudo a2enmod rewrite sudo systemctl restart apache2
4. 调整插件导入策略
- 若备份文件过大,拆分后分批导入;
- 临时禁用其他WordPress插件,排除冲突;
- 重新安装最新版本的All-IN-ONE-MIGRATION插件,修复版本bug。
5. 检查EC2网络与安全配置
- 确认EC2安全组允许HTTP(80)、HTTPS(443)入站流量;
- 检查本地防火墙规则:
确保未限制对sudo ufw statuswp-admin/admin-ajax.php的访问。
内容的提问来源于stack exchange,提问作者sumit kumar mishra
相关产品推荐
相关产品推荐

