mariadb 数据库的问题 情景:是在系统盘不够用的时候,将mariadb 的datadir=/var/lib/mysql 改为了 /alidata/mysql 将/var/lib/mysql 里边的东西复制到了 /alidata/mysql 下边。但是复制的时候没有关闭数据库,将/var/lib/mysql 里边的文件删除了,是所以在restart mariadb的时候起不来,查看mariadb日志 tail -f /var/log/mariadb/mariadb.log 报错如下:[ERROR] mysqld got signal 6 ;

网上说有的文件被损坏,这样的话就是不能恢复了,查看网上的解决办法,如下:

在 配置文件my.cnf 里边添加配置

[mysqld]
innodb_force_recovery = 1       //不检测,直接启动。
systemctl start mariadb 

//如果1 起不来的话就变成2、3、4、......

数据库起来后,备份数据库, mysqldump -uroot -p -A > /alidata/mysql_all.bak 备份完之后,关闭数据库

我的建议是重装数据库。

yum erasse mariadb  mariadb-server -y  
rm -rf /var/lib/mysql/* 
rm -rf /etc/my.cnf
yum install mariadb mariadb-server -y

启动mariadb

systemctl  start  mariadb   //这样数据库就是新的

先把你备份的数据进行备份恢复

mysql -uroot   //直接就能进去
source /alidata/mysql_all.bak    //时间较长

完了之后 要恢复之前的数据库用户和密码,我这就是root用户

mysqladmin -uroot password "密码"
grant all  privileges on *.* to 'root'@'localhost' identified by '密码';
flush privileges;

grant all privileges on *.* to 'root'@'%' identified by ''密码;
flush privileges;

这样问题就解决了,其实官方带给的解决办法是一个道理, 官方解决办法:

https://blog.csdn.net/tantexian/article/details/50749039