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
转载于:https://blog.51cto.com/13930997/2316381