mysql - 在家中为宠物项目托管数据库
问题描述
我正在做一个宠物项目,任何人都可能会或可能不会使用它,这取决于它的好坏。我目前在云提供商上运行 MySQL 实例,即使我几乎不使用该实例,甚至其中没有任何数据,我也开始意识到数据库并不便宜。我每月在 AWS 上花费大约 20 美元,几乎没有使用任何东西。我想看看我是否可以在家里运行一个 MySQL 服务器并使用静态 IP 完成我的工作,直到应用程序准备好迎接黄金时段。我确实需要一个静态 IP,因为我的应用程序托管在 Vercel 和 Heroku 之类的东西上,它们需要与数据库通信。另外,如果我只是在家里的一台运行 MySQL Server 的机器上打开 MySQL 端口,会有任何安全风险吗?
解决方案
我一直在我的家用机器上运行 MySQL。有几次,我在路由器/防火墙中打开了一个端口以提供外部访问。这很慢,但它确实有效。
如果你这样做,你会很聪明地使用一些随机选择的奇怪端口号而不是 3306。减慢网络爬虫和脚本小子的速度。
如果我是你,我会非常小心地在任何对公共网络开放的 MySQL 实例上存储机密或不可替代的数据。(“非常小心”=== 不要这样做。)您应该考虑在 MySQL 上创建特定于主机的帐户,例如,
CREATE USER 'herokuApp'@'192.0.2.123' IDENTIFIED BY 'REDACTED';
192.0.2.123
Heroku dyno 的 IP 地址在哪里。为该用户提供必要的最低权限,以使事情正常运行并从您自己的环境或机器进行管理。
你知道,Heroku 的 postgreSQL 服务有一个免费层。也许这是一个好方法?
另一种可能的选择:在 AWS、DigitalOcean 或其他地方的每月 5 美元的 VM 上建立您自己的 MySQL 服务器。不是免费的,但更便宜。
并且,请阅读:Mysql 添加用户进行远程访问
推荐阅读
- tsql - 使用参数获取存储过程结果时出现 EF6 语法错误
- javascript - 点击地图 HERE 地图获取坐标
- java - 设置 -illegal-access=deny 时授予不受信任的代码“suppressAccessChecks”是否安全?
- mysql - 输出结果水平聚合列值
- python - 多图 Seaborn 和特定轴(如图所示)
- sql - Oracle 11g - MERGE 和错误 ORA-30926:无法在源表中获得一组稳定的行
- r - 如何使用响应二项式变量对重复测量运行 GEE 回归?
- html - 如何删除元素之间不必要的空间?
- r - RGLPK 优化中的约束取决于优化的结果
- ios - 语音转文本错误 - Swift 4