记录了常见的mariadb问题
mysqld: Table ‘./mysql/proc’ is marked as crashed and should be repaired
mysql.proc表是什么:
- mariadb官网
- 主要包含 stored procedures & stored functions
坏了的表,怎么check和修复
在mysql env下:
MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> check table proc;
+------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status | OK |
+------------+-------+----------+----------+
1 row in set (0.01 sec)
REPAIR TABLE proc;
在终端中:
mysqlcheck -uroot -proot mysql -c # 检查mysql中全部表
mysqlcheck -uroot -proot mysql proc -c # 检查mysql.proc
mysqlcheck -uroot -proot mysql -r # 修复mysql中全部表
mysqlcheck -uroot -proot mysql proc -r# 修复mysql.proc
另外注意到,mysql.proc是mysiam表,可以使用myisamchk
来修复,具体如下:
cd /var/lib/mysql # 找到mysql的数据目录
myisamchk --recover --quick ./mysql/proc # 只修复index file,不处理data file问题
myisamchk --recover ./mysql/proc # 首选方式,几乎能修复所有问题(除了unique key not unique)
myisamchk --safe-recover ./mysql/proc # use old recover method,应当在--recover无效之后尝试
一般是什么原因造成的
- 通常来讲是db崩掉,比如非正常stop,服务器挂了等等
- what-causes-tables-to-need-to-be-repaired
- corrupted-myisam-tables
- MyISAM表的崩溃常见原因,有参考意义
keep crash怎么办
创建表的时候,error 28
这个时候一般是盘满了,可以使用df -kh查看磁盘的使用情况。