如果你创建了一个用户并设置了密码。但你发现你使用设置的账号密码都等了不了,例如 mysql -u root -p123456,或者mysql -u root -p都登录不了,但是使用mysql -u root就直接能登陆进去,并且里面没有mysql数据库。那么可能“登错了”账户。这时你的mysql数据库的user表中有一个账户名字为“空”的用户。
解决:先关闭mysql服务,再删除掉mysql数据库user表中账户为“空”的用户,如下:
(如果你“当前使用的数据库,名字不是“空” ”,只想要修改(创建) root的密码,跳过图片的步骤)
(我是直接在linux的普通用户,直接输mysql,回车就直接登陆进来了,其它登陆方式都没用!)
以防万一,先用先前“登错”的登陆方式,登陆mysql,然后修改一个新的root的密码:
mysql> update user set password=password('你要修改的新密码') where user='root';
mysql> flush privileges;
mysql> exit;
开始 :
[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: 输入密码(不会回显)