从故障 HD 移出后,MySQL 表才可读取

从故障 HD 移出后,MySQL 表才可读取

我有一个 wordpress 网站,它位于一台硬盘出现故障的服务器上。硬盘变为只读,我能够复制 mysql 数据库文件。当我将这些文件放到另一台服务器上并启动网站时,我在 Web 服务器日志中看到大量有关表为只读的错误。

我尝试过但未能解决问题:

将所有权更改为 mysql:mysql(反正已经是那样了)
停止并启动 mysql
修复表 -> 给出了一堆错误,例如
错误:表'ccon.wp_bwwc_btc_addresses'是只读的

没有尝试重启整个系统。不知道我还应该尝试什么——它们仍然是只读的。欢迎提出任何建议,谢谢。

创建了一个新的数据库,按照此处的第一个答案复制了表:Linux / mysql:使用 cp 命令将 mysql db 文件从一个数据库复制到另一个数据库安全吗? 确保复制的表是可写的,将文件复制到现有表上,并且它不再可写。

好像整个数据库上都必须设置 ro 标志之类的?我猜一个解决方案是将所有表复制到新数据库中,然后废弃旧数据库。

答案1

以 root 身份登录。确保权限适当。

sudo chown -R mysql:mysql /var/lib/mysql
chmod 755 /var/lib/mysql

验证“用户”权限(从 mysql 提示符):

select * from information_schema.user_privileges where grantee like "'user'%";

最后,但并非最不重要的一点是,检查 SELinux 状态,如果已启用则暂时禁用:

cat /selinux/enforce 
1

echo 0 > /selinux/enforce

重启 MySQL:

sudo service mysql restart

要永久禁用 selinux,请将 /etc/selinux/config 文件中的 SELINUX 变量设置为“disable”。

相关内容