1、查看是否安装
rpm -qa | grep mysql
或者
2、执行卸载删除的时候提示,就没有做删除直接安装的
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
3、安装数据库的repo源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
4、安装mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
5、安装完成
问题描述:
在登录Linux的MySQL时,遇到一个很神奇的问题,执行mysql -u root –p,输入密码后一直提示ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: YES),上网查了之后基本都是提示修改密码。首先,我记得我之前在安装的时候设置过密码为root,而且在本地用navicat也测试连接过用root连得上;其次,我按照网上的教程重新设置了虚拟机MySQL的密码为123456,也用navicat测试过,确实修改成功了,但是到虚拟机上登录的时候还是报这个错;最后,我在登录要求输密码的时候直接回车居然进入MySQL了。
在解决不了上述问题后,我直接回车进入MySQL,想尝试create database new_180423创建数据库,结果又报错ERROR 1044 (42000): Access denied for user''@'localhost' to database 'new_180423',又上网查了一通,终于找到了这两个问题的原因所在。
问题原因:
原来是MySQL数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来。
解决办法:
因此只需要把user表中的匿名用户删除即可解决这两个问题。
1、# vi /etc/my.cnf
在[mysqld]块最后面加上skip-grant-tables,这样重启服务后登陆MySQL无需密码,保存退出vim
2、# service mysqld restart
重启服务
3、# mysql -u root -p
回车直接进入mysql
4、mysql> use mysql ;
5、mysql>delete from user where user='';
删除用户名为空的用户
6、mysql>flush privileges;
刷新权限表
7、把第一步中my.cnf文件中加上的那一行去掉,再次重启服务即可。