设置 mysql 的 root用户 可以被外网访问后的问题

查看:312
本文介绍了设置 mysql 的 root用户 可以被外网访问后的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

修改 root 用户可以不在本地的时候登录

mysql> use mysql;
Database changed
mysql> select host,user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

以上步骤完成之后,遇到个问题就是:
在本地的时候mysql -uroot回车,回车后居然就可以直接登录了

反而不能通过密码登录了:

C:\wamp\mysql\bin>mysql -uroot -p
Enter password: *********
ERROR 1045 (28000): Access denied for user 'root'@'localhost' 
(using password: YES)

C:\wamp\mysql\bin>

这是为什么?

解决方案

localhost不在%里
mysql -uroot -h127.0.0.1 -p

mysql -uroot -p
相当于用2个用户登录

update user set host='%' where user='root';
而且你这样更改,相当于把上面3条记录都修改了,所以系统提示你"ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'错误了,因为Host,User字段是复合主键不唯一。

所以,LZ执行这条语句,其实是不成功的。所以从这一步往下都不用看了。

这篇关于设置 mysql 的 root用户 可以被外网访问后的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆