由于某些原因,需要将mysql从8.0.17降到8.0.11
因为在降级之前,我的mysql数据库里面我是创建了一个额外的数据库的,所以就导致了降级之后出现了问题,因为我安装mysql是通过rpm的方式进行的安装,所以卸载的时候也是直接使用rpm进行卸载,但是我不知道的是rpm卸载并不会删除mysql的数据库文件,好像my.cnf也不会被删除掉,所以这些文件就被留了下来,我把8.0.11安装上之后,就启动不了。
出现下面这样的错误
因为我的问题已经解决了,重现的话太麻烦了,我这里就用了别人的图片,大概是差不太多的。
我执行systemctl start mysqld启动服务的时候。出现了错误信息,叫我执行systemctl status mysqld和journalctl -xe去看错误详情,其实这些错误信息中也看不出啥,然后我又去查看日志
vim /var/log/mysqld.log
最终在日志里面找到了原因,主要从两个地方看出来了
1.mysqld: Can't open file: 'mysql.ibd' (errno: 0 - )
2.简单翻译就是说说是8.0.17版本的数据库文件在8.0.11上不能使用。
其实这就是数据库文件不兼容的问题,然后我就将所有mysql的文件全部删除了。
mysql的数据库文件用rpm方式安装的话,默认是在/var/lib/mysql路径下。
find / -name mysql
find / -name mysqld
将查出来的所有文件全部删除,然后再使用rpm安装就成功ok。
Linux下彻底卸载mysql详解
一、使用以下命令查看当前安装mysql情况,查找以前是否装有mysql
rpm -qa|grep -i mysql
可以看到如下图的所示:
显示之前安装了:
MySQL-client-5.5.25a-1.rhel5
MySQL-server-5.5.25a-1.rhel5
2、停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
rpm -ev MySQL-client-5.5.25a-1.rhel5
rpm -ev MySQL-server-5.5.25a-1.rhel5
如果提示依赖包错误,则使用以下命令尝试
rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
1 find / -name mysql
查找结果如下:
find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
删除对应的mysql目录,具体的步骤如图:查找目录并删除
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa|grep -i mysql