Centos上,新安装的MySQL,root用户用密码无法登陆,创建root用户密码

如果你创建了一个用户并设置了密码。但你发现你使用设置的账号密码都等了不了,例如 mysql -u root -p123456,或者mysql -u root -p都登录不了,但是使用mysql -u root就直接能登陆进去,并且里面没有mysql数据库。那么可能“登错了”账户。这时你的mysql数据库的user表中有一个账户名字为空的用户。 

解决:先关闭mysql服务,再删除掉mysql数据库user表中账户为“空”的用户,如下:

46aed9e19aaa4704bcc3004278cb95a5.png

(我是直接在linux的普通用户,直接输 mysql,回车就直接登陆进来了,其它登陆方式都没用) 

 以防万一,先用先前“登错”的登陆方式,登陆mysql,修改一个新的root的密码

mysql> update user set password=password('你要修改的新密码') where user='root';
mysql> flush privileges; 
mysql> \q

开始 :

[root@localhost ~]# service mysql stop //关闭mysql服务
[root@localhost ~]# mysqld_safe --skip-grant-tables  //忽略权限登录

新开一个会话窗口进入mysql:  mysql -uroot
mysql> use mysql;
mysql> select * from user where user=''; //如果有数据输出,那么你的问题基本就可以确定了
mysql> delete from user where user='';  //删除“空”用户
mysql> flush privileges;     //重载权限表
mysql> exit; 
[root@localhost ~]# service mysql restart //然后重启mysql服务

接下来,就可以正常用密码 登陆root用户了

[root@localhost ~]#  mysql -u root -p

Enter password:    输入密码(不会回显)fa9a48c8e3234331ba610a44a97c8029.png

 

 

 

 

你可能感兴趣的:(mysql,数据库,服务器)