博主是新手,已经被MySQL5.7折磨得快不成人形了,安装前切记将MySQL删除干净!
楔子:Linux下彻底删除mysql
> rpm -qa | grep mysql #查看当前安装的MySQL
> rpm -e --nodeps mysql #强力删除模式,能删除掉相关依赖。msyql为参数
> find / -name mysql #查找出所有的mysql文件夹
> rm -rf mysql #将查出的MySQL文件夹全部删掉
> rm -rf /etc/my.cnf #将配置文件删掉,该路径仅供参考
千万要删除干净后再进行安装,以下是总结:
1、首先遇见的就是yum install mysql-server失败
尝试过很多方法,诸如在/etc/yum.repos.d/mysql-community.repo源文件将MySQL5.5和5.6版本的权限关闭,无效。
解决方法:添加参数nogpgcheck
yum install mysql-community-server --nogpgcheck #参数意思是跳过检验
2、mysqld --initialize失败
这个初始化失败一定要看仔细是什么报错
1)初始化失败
--initialize specified but the data directory has files in it. Aborting.
以上代码时初始化失败,原因:已经初始化过,初始化得目录有自带文件。
解决办法:
第一种:暂停mysql服务,然后将/etc/my.cnf中datadir指定得目录重命名。
第二种:删掉目录(datadir指定得那个mysql目录)。(所以卸载数据库时应该将这些目录和my.cnf都删掉就能避免这个报错。)
2)安装服务时失败
如果不是初始化失败那很大概率是由于刚才安装服务时失败了,回去看看安装服务那里,是不是有ERROR,原因就是安装服务时没带nogpgcheck参数。要先解决安装服务,解决办法不再赘述。
3、systemctl start mysqld启动MySQL服务失败以及setenforce: SELinux is disabled
[root@VM-32-15-centos ~]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl statu mysqld.service" and "journalctl -xe" for details.
1、启动服务失败
原因:经过查找是因为/var/lib/mysql目录(以my.cnf的datadir值为准)权限不够,也不知道怎么引起的,明明前面已经给该目录设置过一次权限了(如果提示没有目录则是安装服务失败了)。
解决办法:
> cd /var/lib/mysql
> ll #列出MySQL下目录
> setenforce 0 #此处可能会出现setenforce: SELinux is disabled的错误(setenforce 0 用来解决 [InnoDB] Operating system error number 13 in a file operation. 这个问题的)
> chown -R mysql:mysql /var/lib/mysql
> chmod -R 777 /var/lib/mysql #目录权限必须设置成 777,只设置成 755 也会出错
> systemctl start mysqld.service
2、setenforce: SELinux is disabled
原因:出现该提示表明SElinux已经彻底关闭(相对于临时关闭而言)。可以通过sestatus -v查看当前selinux的状态。
解决办法:
第一步:vim /etc/selinux/config,打开配置文件后,将SELINUX=DISABLE改成SELINUX=1。
第二步:重启Linux服务器
4、登录数据库mysql root权限丢失不能改mysql库的user表数据或者干脆只能看见一个information_schema的数据库。
原因:可能是由于没有初始化,之前我就被这个问题折磨得苦不堪言。然后将MySQL全部删干净后能进行初始化(单纯个人臆想)后就没遇见了,网上搜的很多都是在mysqld.cnf文件里面或者my.cnf里面加上skip-grant-table或者利用mysqld_safe命令进行操作。我这连mysqld_safe文件都没有,根本不管用。欢迎解决这个问题得大佬留言指点。
5、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
问题:没有出现权限丢失的问题后,它变成了登录失败(密码错误)