wordpress建立数据库连接失败 数据库删除恢复

查遍一整天,终于找到解决办法。

问题

wordpress登录突然显示建立数据库连接失败。

解决办法

办法一

通用的解决办法就是网上一大堆的核对conf文件的配置对不对,数据库连接对不对什么的,网上到处都是。

但是我都试过后,还核对了mysql连接的对不对,还是不行。

办法二

然后我发现虽然宝塔的数据库显示有数据库,但是phpmyadmin里面啥都没。这时候去/www/server/data/mysql下面看了下,数据库确实没了,很崩溃。还好在网上看到可以通过bin日志恢复一下。在刚刚说的那个目录下面看看有没有类似mysql-bin.000010之类的日志,有就可以恢复。

在宝塔终端或者ssh中root权限下,使用命令指定恢复时间:

/www/server/mysql/bin/mysqlbinlog --start-datetime="2021-05-20 15:30:01" --stop-datetime="2021-08-24 12:30:50" /www/server/data/mysql-bin.0000* > redata.sql

其中的/www/server/mysql/bin/mysqlbinlog是mysqlbinlog程序的位置,这样写的好处是不用增加配置系统环境变量,start和stop是划定时间段,注意结束时间不能是删除数据库之后的时间,也就是整个时间段必须在删除数据库之前,假如无法精确,那尽量提前到几天前,开始的时间要早于数据库建立的时间,假如记不清,那可以删掉开始时间。

我就直接用结束时间恢复了,记得这是一行命令:

/www/server/mysql/bin/mysqlbinlog --stop-datetime="2024-09-06 12:30:50" /www/server/data/mysql-bin.0000* > redata.sql

注意mysql-bin.0000的写法是包含了全部所有的数据库信息,执行起来比较费时,假如你可以根据mysql-bin文件的大小和修改时间,确定某个具体的mysql-bin文件,那也可以写具体文件名,例如mysql-bin.000001,一般对应的文件都比较大。

运行上面的命令后进入/root目录下查看是否出现了redata.sql文件,该文件大小应该远大于删掉的数据库大小。

以下我没试过,谨慎尝试

假如没有生成该文件或者该文件过小,那么尝试下面这条命令

/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v -d 数据库名 /www/server/data/mysql-bin.0000* > redata.sql

这条命令不再设置时间点,而是完全按照文件恢复,数据库名换成删掉的数据库名,假如不记得了,去网站文件config或者其他数据库配置文件查看,宝塔默认数据库和网站文件夹同名,点换成下横线。

运行该命令后进入/root目录下查看是否出现了redata.sql文件。

假如有了redata.sql文件,在数据库中新建数据库,数据库名最好和删掉的数据库同名,然后执行下面的命令:

mysql -uroot -p -f 新建数据库名 < redata.sql

执行完这个命令后,数据就回来了

相关推荐
春时似衿里1 分钟前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql
帅帅梓8 分钟前
Linux lvm逻辑卷管理
linux·运维·数据库
Noii.17 分钟前
Mybatis的应用及部分特性
java·数据库·mybatis
JIngJaneIL1 小时前
家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
java·数据库·小程序·vue·论文·毕设·家常菜点餐系统
厦门辰迈智慧科技有限公司1 小时前
高速公路桥梁安全监测系统解决方案
物联网·安全·自动化·监测
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
dbeaver导入数据及配置讲解
数据库·dbeaver
NineData2 小时前
NineData 新增支持 AWS ElastiCache 复制链路
数据库
雨笋情缘2 小时前
【2025年8月5日】mysql-8.0.38-linux-glibc2.12-x86_64.tar.xz 安装MySQL操作指引
linux·数据库·mysql
FreeBuf_3 小时前
联发科芯片组曝高危漏洞:越界写入缺陷危及智能手机与物联网设备安全
物联网·安全·智能手机
士心凡3 小时前
MySQL
数据库·mysql