本文主要是介绍线上报错,千万注意别乱改权限:1290 The MySQL server is running with the --read-only option,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
刚入职不久,突然线上夺命连环call,系统进不去啦!一查报错,谁tm把数据库的写权限关了?
赶紧修改用户权限,上线,没问题了,长吁一口气。
如果你这么操作的,那你就翻车了!
这次bug的真正原因是,该项是读写分离数据库,对方运维启动 写数据库失败,系统写入操作自动切换到 读数据库了,而读数据库没有写权限反而才是正确的!
最后系统在读数据库写了一批数据,这时写数据库启动,把读数据库的数据同步掉了,直接导致出现了数据丢失的错误,加上本身是工业项目,关联实物,后果十分惨痛。
这个事故有很多偶发前提。
1是其他项目几乎没用到读写分离,因此没意识到这个项目居然会用到。
2是该项目的数据库是甲方那边的团队运维的,因此完全没有意识到他们居然重启了数据库,他们也没有通知我们。
3是作为新人,加甲方正在夺命连环call,几乎想不到居然是读写分离导致的。
4是理论上是有机会补救,将原本的读库作为写库,将原本的写库作为读库,这样就不会出现没启动的数据库把数据同步掉的情况。然而等发现数据被同步掉已经是晚上了,早就来不及了。
总之,读写分离是好的,但对项目的数据库结构不了解,最终导致了本次翻车,不过这也不能怪在我一个新人身上就是了
这篇关于线上报错,千万注意别乱改权限:1290 The MySQL server is running with the --read-only option的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!