innodb_read_only 和read_only

innodb_read_only

启动server 在read-only模式。对于分布在数据库应用或者数据设置为只读介质。

也可以用于数据仓库共享相同的数据目录在多个实例之间。

read_only:


当read_only 系统变量启用时, server 不允许client 更新除了用户有超级权限,


默认这个变量是关闭的。


当read_only 启用的时候,server 允许下面这些操作:


slave threads 执行update,  如果server 是一个复制slave. 在复制阶段,


它是有用的 启用read_only 在slave servers上来确保 slaves 只接收来自master的更新而不是clients.


使用ANALYZE TABLE or OPTIMIZE TABLE语句,只读模式下是防止表结构和内容的修改。


分析和优化不符合这样的变化。这意味着,例如,一致性检查在只读复制slaves上可以进行mysqlcheck --all-databases --

analyze.


操作在临时表上


插入log tables(mysql.general_log and mysql.slow_log)

read_only 仅存在全局变量,因此改变这个值需要SUPER 权限。


改变read_only 在master server就不会复制到slave servers.




















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!对于您提到的MySQL的innodb_force_recovery设置后innodb is read only的问题,我可以为您提供一些建议。 首先,innodb_force_recovery是一个用于修复InnoDB存储引擎的参数,它可以在MySQL启动时设置。该参数有多个可选值,范围从0到6,每个值对应不同的修复级别。当您将innodb_force_recovery参数设置为一个非零值时,它会尝试在启动过程中自动修复损坏的InnoDB表。 如果您的MySQL无法启动,并且只有在设置innodb_force_recovery参数后才能启动,但此时InnoDB引擎处于只读模式,那么很可能是因为您的数据库文件存在一些损坏或错误。 在这种情况下,建议您进行以下操作: 1. 备份数据:在尝试修复之前,务必备份所有数据库文件,以防修复过程中出现进一步损坏或数据丢失。 2. 检查错误日志:查看MySQL的错误日志文件,通常位于MySQL的数据目录下。日志中可能会提供一些关于损坏原因的线索。 3. 检查表状态:使用MySQL的工具(如mysqlcheck)检查并修复表状态。您可以尝试运行以下命令来检查和修复表: ```sql mysqlcheck --all-databases --fast --auto-repair ``` 这将检查并自动修复所有数据库中的损坏表。 4. 手动修复:如果自动修复无法解决问题,您可以尝试手动修复损坏的InnoDB表。这可能需要一些专业知识和经验,建议在进行手动修复之前先备份数据。 您可以尝试使用工具如`innodb_force_recovery`、`mysqlfrm`、`innodb_recovery_tool`等来尝试修复损坏的表。具体的步骤和命令取决于您的情况和问题的性质,因此建议您参考MySQL官方文档或咨询专业的数据库管理员进行操作。 请注意,修复损坏的InnoDB表是一个敏感且复杂的过程,需要谨慎处理。如果您不确定如何操作或没有足够的经验,建议您寻求专业的数据库管理员或MySQL技术支持的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值