MySQL 库处于完全只读模式该如何设置?

2020-07-21 18:48:57 +08:00
 diggzhang

想让一个 MySQL 库处于完全只读模式。

开启一个 mysql 会话情况下,设置:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

锁库确实生效。

但是关闭会话后,锁库就失效了。

问题类似: https://dba.stackexchange.com/questions/116816/flush-tables-with-read-lock-not-working

有没有办法让该配置永久生效?

2365 次点击
所在节点    MySQL
12 条回复
MinQ
2020-07-21 18:55:20 +08:00
整个新用户,给只读权限?
realpg
2020-07-21 18:56:57 +08:00
弄个用户只给 select 权限就完了
diggzhang
2020-07-21 19:00:40 +08:00
@MinQ @realpg

此事就痛苦在访问库的用户全是 SUPER 用户。
MinQ
2020-07-21 19:05:32 +08:00
@diggzhang 这种特别容易出问题啊,哪天来个 SQL 注入就直接把数据库带走了
XiaoxiaoPu
2020-07-21 19:06:10 +08:00
MySQL 5.7 支持 super_read_only,看看是否满足?
zjp
2020-07-21 19:13:20 +08:00
用 init-connect 配置执行下
但是这个需求还有用户全都是管理员 这都不合理啊
diggzhang
2020-07-21 19:56:11 +08:00
@MinQ 我也有点疯...
@XiaoxiaoPu 看到这个参数有点小开心,然后一对版本号发现我们数据库用的是 5.6
@zjp 我研究一下
diggzhang
2020-07-21 19:57:37 +08:00
@zjp 我大概懂你思路了
GM
2020-07-21 20:38:00 +08:00
弄个主从设置,给他们 slave 机的用户,随便搞
saulshao
2020-07-21 23:21:02 +08:00
正确的做法是修改访问数据库的用户,别的办法都只能算变通措施
zhangysh1995
2020-07-22 15:39:15 +08:00
楼上正解。
diggzhang
2020-07-22 16:38:51 +08:00
我比较意外的是,`keepalive + mysql` 听起来这么古老的方式,搜不到一篇说得明白,或跟着做下来有用的文档。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/692005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX