mysql - mariadb 数据库损坏。无法进行 mysql_upgrade、mysqlcheck 或 mysqldump
问题描述
今天早上我的 mariadb 数据库无法启动。
看来我有一些损坏的 InnoDB 表,它只会以innodb_force_recovery
set 开头(值1
让它开始)。
我已经尝试过mysql_upgrade --force
,但是一旦到达损坏的表,它就会失败并出现错误2013: Lost connection to MySQL server during query when executing 'REPAIR NO_WRITE_TO_BINLOG VIEW ... '
使用mysqlcheck
, 再次到达损坏的表,然后失败,2013: Lost connection to MySQL server during query when executing 'CHECK TABLE ... '
所有后续检查都失败2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) when executing 'CHECK TABLE ... '
尝试使用 mysqldump 时非常相似。我已经遵循了这里的建议,mysqldump mydatabase --skip-lock-tables --hex-blob --skip-extended-insert > /root/db_backup/mydatabase.sql
但再次,只要它碰到我得到的第一个损坏的表mysqldump: Couldn't execute 'show create table "my_table"': Lost connection to MySQL server during query (2013)
我尝试将innodb_force_recovery
值增加到 6,但无济于事。
我还在 my.cnf 中添加了以下内容
net_read_timeout=7200
net_write_timeout=7200
max_allowed_packet=1024M
它是在 Centos 7 上运行的 mariadb 10.2.28
解决方案
在过去的几天里,我们的几台服务器发生了这种情况。我们在回滚到以前版本的 mariadb 时运气不错,但您可能必须导出 dbs,删除并重新导入 dbs。我们有几个不同的服务器提供商,两者都发生了。一位提供商告诉我们某些版本存在问题。
不用说,在做任何会丢失数据的事情之前确保你有备份。
这些是我们的服务器主机给我们的可能导致这些问题的版本: 10.1.42 10.2.28 10.3.19 10.4.9
推荐阅读
- excel - 如何在vlookup中为左函数编写excel vba编码,或从excel函数转换为vba?
- api - 将图表从本地文件上传到 StockTwits API 的正确语法是什么?
- c# - 如何在 Bouncy Castle 和 C# 中使用 Aria 加密算法
- r - ggplot2 重新排序多个组
- javascript - 在 for ... of 循环中处理未定义?
- performance - 为什么在 Rust 中迭代整数向量比在 Python、C# 和 C++ 中慢?
- r - 在 Pinhiero 和 Bates 书中实现非线性混合效应模型收敛的问题
- windows - Windows IIS 将 domain.de 转发到 www.domain.de
- python - 在 Python 中计算快速、非加密安全的文件哈希
- reflection - C++/WinRT 中有哪些反射机制?