问下如何能定时更新mysql密码,然后也能更新项目中的mysql密码?
情况是这样的,我一个客户用的laravel做的项目,他对mysql的安全要求比较高,希望能定时更新mysql的密码,大概是每隔90天就需要换一次密码。
但是现在有个问题,mysql改了密码,那我这个项目.env 里面的mysql也需要更改密码。
就问下能不能同步起来,能自动修改mysql密码,后也能自动修改项目的mysql密码,主要是如果手动修改,我担心修改期间项目连接数据库失败,减少交接的时间,还有一点就是我懒得过段时间就要去改密码
就问下大家有没有碰到过这种需求的?
写个计划任务,console定时执行,开事务,同时修改.env里面的,然后清除缓存重新生成
你们这个客户是个人才啊
取环境变量的吧,改了密码后直接 export 到环境变量里面
总不能为这个需求,再加个配置中心吧土方法:给他准备俩账号,一个给授权一个不给授权。 改密码的时候,两个账号都给授权,给下一个周期要用的账号,改密码,同时给服务器改环境变量,再
artisan config:cache
。 执行个脚本确认访问都ok了就给旧账号删除授权。人工吧 别整这么复杂
步骤:
php artisan config:clear
可以尝试做个定时任务, 放在服务器运行
我的做法是,根本不给外网
mysql
的访问权限。PS: 参考
php artisan key:generate
去实现脚本修改.env
文件这要瘠薄要求挺那啥的,没事经常改密码干吗
修改密码作用不大,不要开放外网、密码复杂度足够高就可以了。保证数据完整性,建议客户买云MYSQL。
写个shell脚本定时执行不就可以了嘛
透过问题看本质,你是没有意识到你不了解
env
在 Laravel 中的加载流程亦或是说你不知道 Laravel 是怎么读取 ENV 变量的。如果你知道的话,这个方案就很简单。你的 env 文件不要写关于 database 的配置,完全交给 Linux || Windows 的 环境变量去做。
至于定时更新密码,写一个 crontab 去做就ok,你甚至可以同时修改 用户名、密码、端口、库名。