MySQL 库处于完全只读模式该如何设置? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
diggzhang
V2EX    MySQL

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

  •  
  •   diggzhang 2020-07-21 18:48:57 +08:00 2809 次点击
    这是一个创建于 1986 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    SET GLOBAL read_Only= OFF; UNLOCK TABLES; 

    锁库确实生效。

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

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

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

    第 1 条附言    2020-07-22 10:04:05 +08:00

    会话内锁库

    SET GLOBAL read_Only= ON; FLUSH TABLES WITH READ LOCK; 

    解锁

    SET GLOBAL read_Only= OFF; UNLOCK TABLES; 

    在一些主从配置教程中说可以通过调用命令行方式设置锁库是无效的。 在会话结束后,锁库隐式语句也就失效。

    最终采取办法是,如何有临时锁库的需求,暂时重置用户权限:

    REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; grant select on *.* to 'root'@'%'; 
    12 条回复    2020-07-22 16:38:51 +08:00
    MinQ
        1
    MinQ  
       2020-07-21 18:55:20 +08:00
    整个新用户,给只读权限?
    realpg
        2
    realpg  
    PRO
       2020-07-21 18:56:57 +08:00
    弄个用户只给 select 权限就完了
    diggzhang
        3
    diggzhang  
    OP
       2020-07-21 19:00:40 +08:00
    @MinQ @realpg

    此事就痛苦在访问库的用户全是 SUPER 用户。
    MinQ
        4
    MinQ  
       2020-07-21 19:05:32 +08:00
    @diggzhang 这种特别容易出问题啊,哪天来个 SQL 注入就直接把数据库带走了
    XiaoxiaoPu
        5
    XiaoxiaoPu  
       2020-07-21 19:06:10 +08:00
    MySQL 5.7 支持 super_read_only,看看是否满足?
    zjp
        6
    zjp  
       2020-07-21 19:13:20 +08:00 via Android
    用 init-connect 配置执行下
    但是这个需求还有用户全都是管理员 这都不合理啊
    diggzhang
        7
    diggzhang  
    OP
       2020-07-21 19:56:11 +08:00
    @MinQ 我也有点疯...
    @XiaoxiaoPu 看到这个参数有点小开心,然后一对版本号发现我们数据库用的是 5.6
    @zjp 我研究一下
    diggzhang
        8
    diggzhang  
    OP
       2020-07-21 19:57:37 +08:00
    @zjp 我大概懂你思路了
    GM
        9
    GM  
       2020-07-21 20:38:00 +08:00
    弄个主从设置,给他们 slave 机的用户,随便搞
    saulshao
        10
    saulshao  
       2020-07-21 23:21:02 +08:00   1
    正确的做法是修改访问数据库的用户,别的办法都只能算变通措施
    zhangysh1995
        11
    zhangysh1995  
       2020-07-22 15:39:15 +08:00
    楼上正解。
    diggzhang
        12
    diggzhang  
    OP
       2020-07-22 16:38:51 +08:00
    我比较意外的是,`keepalive + mysql` 听起来这么古老的方式,搜不到一篇说得明白,或跟着做下来有用的文档。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5403 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 07:54 PVG 15:54 LAX 23:54 JFK 02:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86