MySQL8.0允许外部访问1.前提条件:根据https://blog.csdn.net/h996666....2.开始修改配置:1.登录后MySQL,2.输入如下语句进入mysql库:usemysql3,updatedomainattributes,'%'表示允许外部访问:updateusersethost='%'whereuser='root';4、执行上面的语句然后执行:FLUSHPRIVILEGES;5、然后执行授权语句:GRANTALLPRIVILEGESON*.*TO'root'@'%'WITHGRANTOPTION;然后外面就可以通过账号密码访问了。6.其他说明:FLUSHPRIVILEGES;该命令的本质作用是将mysql库(MySQL数据库内置库)中当前用户表和权限表中的用户信息/权限设置提取到内存中。MySQL用户数据和权限修改后,想要不重启MySQL服务直接生效,就需要执行这条命令。通常修改ROOT账户设置后,如果担心重启后无法再次登录,那么可以直接flush后查看权限设置是否生效。无需冒太大风险。3、其他可能存在的问题:执行后使用Navicat连接mysql,报错如下:Clientdoesnotsupportauthenticationprotocolbyserver;错误原因:mysql8.0引入了一个新特性caching\_sha2\_password;Navicat12以下客户端不支持这种密码加密方式;Navicat12以下客户端支持mysql\_native\_password加密方式;解决方法:1、使用如下语句查看当前MySQL加密方式selecthost,user,pluginfromuser;查询结果+------------+----------------+-----------------------+|主持人|用户|插件|+------------+----------------+-------------------+|%|根|缓存\_sha2\_密码||本地主机|mysql.信息模式|mysql\_native\_password||本地主机|mysql。会议|mysql\_native\_password||本地主机|mysql.sys|mysql\_native\_password|+------------+------------------+----------------------+看第一行,根加密方式是caching\_sha2\_password。2、使用命令修改为mysql\_native\_password加密方式:updateusersetplugin='mysql_native_password'whereuser='root';当您再次连接时,它将成功。4、如果经过以上操作仍然无法连接,则可能是防火墙的问题。1、MySQL部署在物理服务器上。解决方法如下:a.打开MySQL的端口号。默认端口号是3306。b.直接关掉防火墙(谨慎操作,不推荐。当然,如果你想测试的话,可以随意。。。)2、在云电脑上部署MySQL的解决方案如下:a.以阿里云为例,找到实例,设置安全组,开放端口号即可。
