更新时间:2025-08-20 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
数据库磁盘满导致被设置read_only
场景描述
业务侧出现如下报错:
The MySQL server is running with the --read-only option so it cannot execute this statement
原因分析
- 进入实例详情页面,查看磁盘空间是否已满。
- 登录数据库,查看read_only变量。
- 分析原因为实例磁盘空间满,数据库状态变更为只读,导致SQL语句执行失败。
- 通过智能DBA助手查看磁盘空间占用分布,具体操作请参见容量预估。 
     图1 磁盘空间分布  
解决方案
- 随着业务数据的增加,原来申请的数据库磁盘容量可能会不足,建议用户扩容磁盘空间,确保磁盘空间足够。 
     如果原有规格的磁盘已是最大,请先升级规格。 云盘实例可以设置存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容。 
- 针对数据空间过大,可以删除无用的历史表数据。
- 如果是RDS for MySQL Binlog日志文件占用过多,可以清理本地Binlog日志,来释放磁盘空间。
- 针对大量排序查询导致的临时文件过大,建议优化SQL查询。
- 您还可以订阅实例健康日报来获取SQL及性能分析结果,包括慢SQL分析、全量SQL分析、性能 & 磁盘分析、性能指标趋势图,当发生风险点时及时收到诊断报告。 
     具体操作请参见诊断日报。 
 
     
      