问下如何能定时更新mysql密码,然后也能更新项目中的mysql密码?

情况是这样的,我一个客户用的laravel做的项目,他对mysql的安全要求比较高,希望能定时更新mysql的密码,大概是每隔90天就需要换一次密码。
但是现在有个问题,mysql改了密码,那我这个项目.env 里面的mysql也需要更改密码。
就问下能不能同步起来,能自动修改mysql密码,后也能自动修改项目的mysql密码,主要是如果手动修改,我担心修改期间项目连接数据库失败,减少交接的时间,还有一点就是我懒得过段时间就要去改密码
就问下大家有没有碰到过这种需求的?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 15

写个计划任务,console定时执行,开事务,同时修改.env里面的,然后清除缓存重新生成

9个月前 评论

你们这个客户是个人才啊

9个月前 评论
donggan (楼主) 9个月前

取环境变量的吧,改了密码后直接 export 到环境变量里面

总不能为这个需求,再加个配置中心吧

9个月前 评论
sanders

土方法:给他准备俩账号,一个给授权一个不给授权。 改密码的时候,两个账号都给授权,给下一个周期要用的账号,改密码,同时给服务器改环境变量,再 artisan config:cache。 执行个脚本确认访问都ok了就给旧账号删除授权。

9个月前 评论

人工吧 别整这么复杂

9个月前 评论

步骤:

  1. 新建 mysql 用户
  2. 修改所有 .env 文件
  3. 如有需要:php artisan config:clear
  4. 如果 php 是常驻内存, 需要重启服务。
  5. 删除旧 mysql 用户

可以尝试做个定时任务, 放在服务器运行

我的做法是,根本不给外网 mysql 的访问权限。

PS: 参考 php artisan key:generate 去实现脚本修改 .env 文件

9个月前 评论

这要瘠薄要求挺那啥的,没事经常改密码干吗

9个月前 评论

修改密码作用不大,不要开放外网、密码复杂度足够高就可以了。保证数据完整性,建议客户买云MYSQL。

9个月前 评论
xiaochong0302

写个shell脚本定时执行不就可以了嘛

9个月前 评论
陈先生

透过问题看本质,你是没有意识到你不了解 env 在 Laravel 中的加载流程亦或是说你不知道 Laravel 是怎么读取 ENV 变量的。如果你知道的话,这个方案就很简单。

你的 env 文件不要写关于 database 的配置,完全交给 Linux || Windows 的 环境变量去做。

至于定时更新密码,写一个 crontab 去做就ok,你甚至可以同时修改 用户名、密码、端口、库名。

9个月前 评论
donggan (楼主) 9个月前
陈先生 (作者) 9个月前
donggan (楼主) 9个月前
陈先生 (作者) 9个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!