mysql如何设置允许外网连接数据库

首先,更改MySQL配置,使其监听外部网络。
这些是 Linux 上的 etc/my.cnf 和 Windows 上的 ProgramDataMySQLMySQLServerx.xmy.ini。
添加一行“bind-address=0.0.0.0”。

然后重新启动MySQL服务。

接下来,创建一个新用户并授予他所有权限。
命令是:
创建用户“your_user”@“%”,由“your_password”标识; 授予 上的所有权限。
TO 'your_user'@'%' WITH GRANT OPTION;
请记住,不要在生产环境中使用 %,而应使用特定的 IP 地址。

然后刷新权限:
FLUSH PRIVILEGES;
防火墙和安全组也应该到位。
使用适用于 Linux 的 UFW 并为 Windows 防火墙添加 3 3 06 端口规则。
云服务器安全组也配置允许外部IP访问3 3 06
测试远程连接,使用:
mysql -h[服务器的公网IP地址] -u[用户名] -p
密码就成功了。

安全要点:不使用、使用强密码、只授予必要的权限、加密连接、定期检查权限、不要暴露MySQL版本。

故障排除:如果连接超时,检查防火墙,如果访问被拒绝,检查权限,如果配置无效,检查路径是否正确。

mysql数据怎么允许远程连接

说白了,允许远程连接MySQL只需两步:更改配置文件和授权用户。
这个问题很复杂,也有很多危险,一不小心就会给你带来麻烦。

展开来,先说最重要的:把my.conf文件中的bind-address行从1 2 7 .0.0.1 改成0.0.0.0后,记得重启服务。
去年我们跑一个高合并项目的时候,我们忘记了这一步。
结果3 000个请求全部卡在登录阶段,监控画面变得模糊。
用行话来说,这称为雪崩效应。
事实上,前面的一点延迟就让一切都落后了。
第二个问题是更改配置后需要执行刷新权限。
很多人都忽略了这个事情。
上次测试的时候发现连本地登录都打不开。
还有一个重要的细节:授权时使用‘%’通配符其实可以允许所有IP,但建议使用特定的IP或网段,如‘1 9 2 .1 6 8 .1 .%’,安全系数更高,比如给宿舍门配备指纹锁,比插卡更好。
一开始我以为授予root权限就可以了,后来发现不对劲。
在测试环境中,我使用普通账户运行生产指令,账户直接被锁定。
这实在是太令人震惊了。

温馨提示:更改配置后,必须使用telnet [ip]:3 3 06 进行测试。
去年,一位同事对测试环境进行了随意的更改。
结果生产环境的3 3 06 端口被防火墙屏蔽了,这让我很担心。
建议先在开发环境验证,然后逐步推入测试和预发布。

最后,我认为这很有趣,但是说到安全性,您认为使用白名单和黑名单哪个更可靠?