如何仿制手机版网站,产品推销,企业应加强自身网站建设,苏州有什么好玩的游乐园环境
rocky linux 9 #xff08;跟centos几乎一模一样#xff09;
myqsl 8.0#xff0c; 存储引擎使用innodb
问题描述
1. 服务器异常关机#xff0c;重启启动后发现mysql无法连接#xff0c;使用命令查看mysql状态#xff1a;
systemctl status mysqld
发现mysql服…环境
rocky linux 9 跟centos几乎一模一样
myqsl 8.0 存储引擎使用innodb
问题描述
1. 服务器异常关机重启启动后发现mysql无法连接使用命令查看mysql状态
systemctl status mysqld
发现mysql服务没启动尝试启动mysql服务
systemctl start mysqld
上述命令执行后卡住不动服务也没法正常启动 2. ctrl c 强行取消命令执行然后去查看一下mysql的启动日志对于我目前的环境mysql的启动日志位于/var/log/mysql/
vi /var/log/mysql/mysqld.log 部分输出
InnoDB: End of page dump
InnoDB: Page may be an update undo log page
2021-02-10T14:22:14.800611Z 0 [ERROR] [MY-011906] [InnoDB] Database page corruption on disk or a failed file read of page [page id: space4294967279, page number611]. You may have to recover from a backup.
根据日志很明显是数据库文件损坏断电导致 3. 调整配置尝试使用恢复模式强行启动mysql
vi /etc/my.cnf.d/mysql-server.cnf## 在[mysqld]标签下方添加一行配置
innodb_force_recovery1## 完整文件如下
[mysqld]
datadir/var/lib/mysql
socket/var/lib/mysql/mysql.sock
log-error/var/log/mysql/mysqld.log
pid-file/run/mysqld/mysqld.pid
innodb_force_recovery1
再次尝试启动mysql执行 systemctl start mysqld.。执行此命令后可能还会卡住此时要有点耐心多等一会至多五分钟。如果执行命令过程中提示超时也建议继续等待此时mysql已经在后台尝试启动了。提示超时后可以使用systemctl status mysqld命令不停的查看启动状态。超过5分钟还没有启动成功就不建议再等待了。
如果启动不了将上述配置文件中的innodb_force_recovery的值修改为2再重试上述步骤还不行的话就改为3、4、5、6每次1直到启动成功。需要注意的是此值大于等于4的时候强制启动数据库有丢失部分数据的风险。
4. 数据库启动成功后处于一个只读模式此时只能读不能写。下一步的操作思路可以总结为 1. 登录数据库使用命令执行表检查查出损坏的表 2. 导出损坏的表 3. 删除损坏的表 4. 重建损坏的表
上述步骤操作起来有点复杂我这边用的是一种简单粗暴的方式就是备份所有的表另起一台数据库整个重建。
## 导出全部的表
mysqldump -uroot -p123456 --all-databases all_data_backup.sql## 在新的数据库上边导入全部的表
mysql -uroot -p123456 -e source all_data_backup.sql