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