乐趣区

关于mysql:MySQL80允许外部访问

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

退出移动版