从.frm、.ibd文件及MySQL目录恢复WordPress数据库求助
从MySQL数据目录恢复WordPress数据库
一、先搭匹配版本的数据库服务
- 必须安装和原服务器完全相同版本的MariaDB/MySQL,版本不兼容会直接导致数据文件无法识别。先通过原服务器的
mysql --version或mariadb --version确认版本号,再安装对应版本的服务包。
二、停止当前数据库服务
避免操作时文件被占用,先停止服务:
sudo systemctl stop mariadb # 若使用MySQL则替换为mysql
三、替换数据目录文件
- 先备份当前服务器默认数据目录,防止误操作丢失现有数据:
sudo mv /var/lib/mysql /var/lib/mysql_backup - 新建mysql目录,将你抢救的四个目录(
performance_schema、sys、wordpress、mysql)全部复制进去:
例如你将抢救文件存在sudo mkdir /var/lib/mysql sudo cp -r /你存放抢救文件的路径/mysql/* /var/lib/mysql//home/fadi/saved_db,就把路径替换为该目录。
四、修复文件权限
数据库服务以mysql用户运行,必须给数据目录设置正确权限:
sudo chown -R mysql:mysql /var/lib/mysql sudo chmod -R 755 /var/lib/mysql
五、启动服务并验证数据
- 启动数据库服务:
sudo systemctl start mariadb - 检查服务是否正常启动:
若启动失败,查看日志排查问题:sudo systemctl status mariadbsudo journalctl -u mariadb - 登录数据库验证WordPress数据:
输入密码后执行以下命令:mysql -u root -p
能看到SHOW DATABASES;wordpress数据库即为正常,再进入数据库查看表:
若能看到wp_posts、wp_users等WordPress核心表,说明数据恢复成功。USE wordpress; SHOW TABLES;
六、修复phpMyAdmin访问问题
- 将你抢救的phpmyadmin文件夹复制到Web服务器根目录:
- Apache服务器:
/var/www/html/ - Nginx服务器:
/usr/share/nginx/html/
执行命令:
sudo cp -r /你存放phpmyadmin的路径/phpmyadmin /var/www/html/ - Apache服务器:
- 设置phpMyAdmin目录的Web服务权限:
sudo chown -R www-data:www-data /var/www/html/phpmyadmin sudo chmod -R 755 /var/www/html/phpmyadmin - 重启Web服务:
sudo systemctl restart apache2 # Nginx则替换为nginx - 访问注意:若原服务器使用HTTPS,需确保当前服务器配置了SSL证书;否则直接用
http://你的服务器IP/phpmyadmin访问。仍无法打开则查看Web日志:- Apache日志:
/var/log/apache2/error.log - Nginx日志:
/var/log/nginx/error.log
- Apache日志:
七、关联WordPress站点
数据库恢复后,修改WordPress根目录下的wp-config.php,确保数据库配置与当前服务器一致:
define('DB_NAME', 'wordpress'); define('DB_USER', '原数据库用户名'); // 遗忘可登录mysql后查询mysql.user表 define('DB_PASSWORD', '原数据库密码'); // 遗忘可重置root密码后重新授权 define('DB_HOST', 'localhost');
若遗忘数据库密码,重置root后给WordPress数据库用户重新授权:
ALTER USER '你的数据库用户'@'localhost' IDENTIFIED BY '新密码'; GRANT ALL PRIVILEGES ON wordpress.* TO '你的数据库用户'@'localhost'; FLUSH PRIVILEGES;
内容的提问来源于stack exchange,提问作者fadi
相关产品推荐
相关产品推荐

