问题一 Table xx is marked as crashed and last (automatic?) repair failed

有开发找到我,说数据库坏了,连不上数据库,看了下 MySQL 的错误日志,报错如下:

Error: Table './db_name/table_name' is marked as crashed and last (automatic?) repair failed

修复

1、先住手 MySQL:service mysqld stop
2、进入到 MySQL 数据库的文件存放目录,好比 cd /data/mysql_data/xx_db
然后执行如下下令:

myisamchk --safe-recover -f -r *.MYI

执行完成后,为了保险起见,我们要将文件的权限改回 MySQL 的运行账号(自行查看),好比 mysql:

chown -R mysql:mysql .

3、启动 MySQL:service mysqld start
4、最后,执行再次自动修复优化下令即可解决:

mysqlcheck --auto-repair --optimize --all-databases -p密码

问题二 /usr/local/mysql/bin/mysqld does not exist or is not executable.

]# /data/wapage/hhzk/mserver/mysql5713/bin/mysqld_safe  --defaults-file=/etc/my.cnf &
[1] 24527
]# 2020-11-23T10:36:45.803151Z mysqld_safe Logging to '/data/wapage/hhzk/mserver/mysql5713/data/qd01-tech2-rec-build001.ps.easou.com.err'.
2020-11-23T10:36:45.809116Z mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information

[1]+  Exit 1                  /data/wapage/hhzk/mserver/mysql5713/bin/mysqld_safe --defaults-file=/etc/my.cnf

说明:mysqld_safe启动剧本默认的从/usr/local/mysql目录中读取另外一个启动剧本mysqld,由于我的安装目录为/data/wapage/hhzk/mserver/mysql5713。以是找不到相关文件。可以从两个方面解决。
方式一:在/usr/local/mysql建立链接文件

,

以太坊开奖网

www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。

,
mkdir -p /usr/local/mysql/bin
ln -s /data/wapage/hhzk/mserver/mysql5713/bin/mysqld /usr/local/mysql/bin/mysqld

方式二:将mysqld_safe中的所有/usr/local/mysql目录改为自己现实的安装目录

sed -i 's#/usr/local/mysql#/data/wapage/hhzk/mserver/mysql5713#g'  /data/wapage/hhzk/mserver/mysql5713/bin/mysqld_safe