首先,应该让服务器监听想要共享的ip地址。
(1) windows找到安装路径下的 my.ini;
(2) linux 找到安装路径下的 my.cnf;
[mysqld]
bind_address=0.0.0.0 # 8.0.22版本之前,只支持设置一个地址(*, 0.0.0.0, or ::),后续版本支持一个命名空间
详细说明请参阅官方文档: https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
配置完以后你可能发现外部还是无法访问,甚至局域网内也无法访问,这大概率是因为使用的用户没有 访问权限 导致的,可以通过以下配置解决。
# root更换成你的用户名
select host from user where user='root'; # 查询root用户允许访问的 host
# '%' 表示允许来自任何主机的访问
update user set host = '%' where user ='root'; # 设置root用户允许访问的 host 为全部
# 运行以下命令刷新权限使修改生效(切记,否则不生效)
flush privileges;
温馨提示:为了安全起见,建议仅为需要外部访问的用户授予适当的权限,同时一定要使用强密码,来保护数据库的安全。