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.以阿里云为例,找到实例,设置平安组,凋谢端口号即可。