The MySQL server is running with the –read-only option so it cannot execute this statement
作者:mmseoamin日期:2023-12-18

The MySQL server is running with the –read-only option so it cannot execute this statement

简介

  • 这个错误信息意味着MySQL服务器正在读取模式(read-only mode),因此无法执行此语句。
  • 读取模式是MySQL服务器的一种模式,它可以防止数据被意外地修改,因此,当服务器处于读取模式时,所有的写操作都被禁用。

    解决方式

    查看MySQL服务器的当前状态

    • 要查看MySQL服务器的当前状态,可以使用以下命令:

    • SHOW GLOBAL VARIABLES LIKE 'READ_ONLY';
      
    • 如果READ_ONLY变量的值为ON,则表示MySQL服务器正在读取模式下运行。如果它的值是OFF,则表示它不是。

      关闭读取模式

      • 如果MySQL服务器处于读取模式下,并且你想要执行写操作,你需要关闭读取模式。你可以通过以下命令来关闭读取模式:

      • SET GLOBAL read_only = 0;
        
      • 这将关闭读取模式并允许进行写操作。

        使用root账户登录

        • 如果你无法使用USER账户执行更新操作并且服务器正在读取模式下,那么你可以尝试使用root账户登录MySQL服务器。

        • mysql -u root -p
          
        • 进入mysql后,输入以下命令更改读取模式状态:

        • SET GLOBAL read_only = OFF;
          
        • 在确定没有其他用户连接MySQL数据库的情况下,在此期间进行必要的更新操作。

        • 示例1:

        • mysql> SET GLOBAL read_only = 1;
          Query OK, 0 rows affected (0.00 sec)
          mysql> INSERT INTO test(name, score) VALUES('John', 90);
          ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
          
        • 在这个例子中,我们尝试向表test中插入一行,但我们得到了一个错误,因为MySQL服务器处于读取模式。

        • 示例2:

        • mysql> SELECT @@global.read_only;
          +----------------+
          | @@global.read_only |
          +----------------+
          | 1              |
          +----------------+
          1 row in set (0.00 sec)
          mysql> SET GLOBAL read_only = 0;
          Query OK, 0 rows affected (0.00 sec)
          mysql> SELECT @@global.read_only;
          +----------------+
          | @@global.read_only |
          +----------------+
          | 0              |
          +----------------+
          1 row in set (0.00 sec)
          
        • 在这个例子中,我们查看了MySQL服务器的读取模式状态,并将其从1更改为0,从而关闭了读取模式。

          -----------------------------------------------------------------------------------

          offer突击训练营简介:

          1:针对不知道怎么面试,面试没有信心的小伙伴,我们会给你一个offer保障。

          2:我们会监督你15-20天内把面试体系技术点掌握至少7成,这样足够你去找到满意的工作了。

          3:我们是面向面试学习指导,不会带你们去写代码,会把项目真实开发的迭代过程和技术细节如何实现业务功能都详细教清楚,你能在面试中流畅表达清楚就行了,项目经验你不用担心(技术老师提供的真实项目经验肯定拿的出手),自己学和别人带着系统学,效率完全不一样。

          详情请点击这里:offer突击训练营,给你一个offer的保障,求职跳槽的看过来!