MySQL8.0容许内部拜访

一、前置条件:

依照https://blog.csdn.net/h996666...。

二、开始批改配置:

1,登进MySQL之后,

2,输出以下语句,进入mysql库:

use mysql

3,更新域属性,’%’示意容许内部拜访:

update user set host='%' where user ='root';

4,执行以上语句之后再执行:

FLUSH PRIVILEGES;

5,再执行受权语句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

而后内部就能够通过账户明码拜访了。

6,其它阐明:

FLUSH PRIVILEGES; 命令实质上的作用是:

将以后user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有批改后,心愿在”不重启MySQL服务”的状况下间接失效,那么就须要执行这个命令。

通常是在批改ROOT帐号的设置后,怕重启后无奈再登录进来,那么间接flush之后就可以看权限设置是否失效。

而不用冒太大危险。

三、可能存在的其它问题:

执行完之后,再用Navicat连贯mysql,报错如下:

Client does not support authentication protocol requested by server;

报错起因:

mysql8.0 引入了新个性 caching\_sha2\_password;这种明码加密形式Navicat 12以下客户端不反对;

Navicat 12以下客户端反对的是mysql\_native\_password 这种加密形式;

解决方案:

1,用如下语句查看MySQL以后加密形式

select host,user,plugin from user;

查问后果

+-----------+------------------+-----------------------+| host      | user             | plugin                |+-----------+------------------+-----------------------+| %         | root             | caching\_sha2\_password || localhost | mysql.infoschema | mysql\_native\_password || localhost | mysql.session    | mysql\_native\_password || localhost | mysql.sys        | mysql\_native\_password |+-----------+------------------+-----------------------+

看第一行,root加密形式为caching\_sha2\_password。

2,应用命令将他批改成mysql\_native\_password加密模式:

update user set plugin='mysql_native_password' where user='root';

再次连贯的时候,就胜利了。

四、如果还连贯不上

通过以上操作后,仍然无奈连贯上,问题可能出在了防火墙上。

1,MySQL部署在实体服务器上解决方案如下:
a.凋谢MySQL的端口号,默认端口号是3306。
b.间接敞开防火墙(谨慎操作,不倡议。当然测试玩的话就随便了。。。。)

2,MySQL部署在云计算机上的计划如下:
a.以阿里云为例,找到实例,设置平安组,凋谢端口号即可。