方法一:
更改mysql数据库user表的host列,把localhost改为%

[root@localhost ~]# mysql -u root -p123***
mysql> use mysql;
mysql> select Host,User from user;
mysql> update user set host='%' where user='root';
mysql> flush privileges;

 

方法二(推荐):
添加一个新的授权

首先链接本机的mysql(用ssh登录终端,输入如下命令):

mysql -uroot -p
输入密码登陆进去后,输入如下的语句,执行。

grant all privileges on *.* to 'root'@'%' identified by '******' with grant option;

FLUSH PRIVILEGES;

------------------------------------------------------------------------------------------------------------------------------------------------

报错解决方法:

一、报错
MySQL执行命令:

UPDATE user SET host = '%' WHERE user = 'root';

报错:

ERROR 1062 (23000): Duplicate entry '%-root' for key 'user.PRIMARY'

mysql> UPDATE user SET host = '%' WHERE user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'user.PRIMARY'
二、原因
查看所有的用户

select host, user from user;

发现,有两个root用户,我们将host 为host的那条数据删除。

 

mysql> DELETE FROM user WHERE user = 'root' AND host = 'host';
Query OK, 1 row affected (0.01 sec)
再次进行更新

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
再次查看用户数据

mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
此时HOST已经变成了%

最后使用更改生效

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。