如何取消Linux数据库只读模式?

操作前关键准备

  1. 备份数据库
    执行任何写操作前,使用以下命令备份(以MySQL为例):

    mysqldump -u [用户名] -p --all-databases > full_backup.sql
  2. 检查只读状态
    登录数据库确认当前状态:

    SHOW VARIABLES LIKE 'read_only';  -- MySQL
    SELECT pg_is_in_recovery();       -- PostgreSQL(返回 f 表示非只读)

**二、取消只读模式的具体步骤

MySQL/MariaDB

方法1:动态修改(无需重启)

SET GLOBAL read_only = OFF;          -- 取消全局只读
SET GLOBAL super_read_only = OFF;    -- 若启用超级只读需额外关闭

方法2:修改配置文件(需重启)
编辑 /etc/my.cnf 或 /etc/mysql/my.cnf:

[mysqld]
read_only = OFF          # 删除或设为OFF
super_read_only = OFF    # 同上

重启服务生效:

systemctl restart mysqld

PostgreSQL

步骤:

  1. 结束恢复模式(如主从架构中的从库):
    pg_ctl promote -D /var/lib/pgsql/data/  # 提升从库为主库
  2. 单机环境修改配置:
    编辑 postgresql.conf:

    default_transaction_read_only = off  # 确保为off

    重启服务:

    systemctl restart postgresql

Redis

redis-cli
127.0.0.1:6379> CONFIG SET replica-read-only no  # 关闭副本只读
127.0.0.1:6379> CONFIG REWRITE                  # 持久化配置

MongoDB

use admin
db.adminCommand({ setParameter: 1, readOnly: false })  // 取消只读

验证是否成功

  • MySQL:
    SHOW VARIABLES LIKE 'read_only';  -- 结果应为 OFF
  • PostgreSQL:
    INSERT INTO test_table (col) VALUES ('write_test');  -- 测试写入
  • 通用检查:
    观察应用日志或使用监控工具(如Prometheus)确认写操作恢复。

常见问题解决

  1. 权限不足导致失败

    ERROR 1227 (42000): Access denied; need SUPER privilege

    解决方案:使用具有 SUPER 权限的账户操作。

  2. PostgreSQL从库无法取消只读
    需先停止主从同步:

    pg_ctl stop -D /var/lib/pgsql/data/
    rm -f /var/lib/pgsql/data/standby.signal  # 删除触发恢复的信号文件
    pg_ctl start -D /var/lib/pgsql/data/
  3. 配置文件修改后未生效

    • 检查配置路径是否正确:mysql --help | grep "my.cnf"
    • 确认服务重启:systemctl status mysqld

安全建议

  1. 只读场景推荐
    • 从库查询分离时保持只读
    • 数据备份期间启用只读防误操作
  2. 操作后监控
    使用 top、htop 或 vmstat 观察服务器负载,避免突发写入导致资源过载。

重要提示:生产环境操作前必须备份数据并制定回滚方案,如遇复杂架构(如集群、主从复制),建议结合数据库文档操作。


引用说明:

  • MySQL 8.0 Reference Manual: read_only System Variable
  • PostgreSQL Documentation: Recovery Configuration
  • Redis Commands: CONFIG SET
  • MongoDB Manual: readOnly Mode

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6375.html

赞 (0)
酷番叔酷番叔
上一篇 2025年7月5日 22:57
下一篇 2025年7月5日 23:59

相关推荐

  • 取消为何有人欢喜有人愁?

    取消有两种核心含义:一指废除、使原有的安排或决定不再生效(如取消会议);二指数学中的约分,即消除分数中分子与分母的公因数(如 6/8 取消为 3/4)。

    2025年6月17日
    25800
  • Linux如何使用?从基础操作到实用技巧的全面指南

    Linux 是一个开源的类 Unix 操作系统内核,也是围绕内核构建的完整操作系统的统称,它以其稳定性、安全性和灵活性被广泛应用于服务器、嵌入式设备、超级计算机以及个人电脑等领域,要理解 Linux 是如何使用的,需要从系统安装、基本操作、命令行工具、文件管理、软件管理、用户权限、网络配置等多个维度展开,同时结……

    2025年9月17日
    21900
  • 怎么安装Linux系统?超详细新手教程必看!

    准备工作(关键步骤)选择 Linux 发行版推荐新手使用:Ubuntu、Linux Mint、Fedora(访问官网下载最新 ISO 镜像),企业用户可选:CentOS Stream 或 Debian,验证镜像:下载后务必校验 SHA256 值(官方提供),避免文件损坏,硬件要求最低配置:双核 CPU、4GB……

    2025年7月24日
    21500
  • linux如何新建脚本文件夹下

    Linux 中,可进入目标位置,使用`mkdir script_folder

    2025年8月18日
    19300
  • 这将成为新趋势吗?

    在Linux系统中修改分区名称(也称为卷标)是一个常见的操作,主要用于提高分区可识别性(如将/dev/sda1改为DATA或BACKUP),以下是详细且安全的操作指南,涵盖命令行与图形界面两种方法:修改前的关键准备备份数据:任何磁盘操作都有风险,务必提前备份重要数据,卸载分区:修改分区名称前需卸载目标分区(不能……

    2025年7月28日
    22400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信