MySQL服务器正在使用——read-only选项运行,因此它不能执行此语句



我在只读数据库中使用select查询时遇到了奇怪的hibernate问题。

SQL Error: 1290, SQLState: HY000
The MySQL server is running with the --read-only option so it cannot execute this statement

我们的要求是从只读数据库而不是从主数据库运行select query。

查询:SELECT x FROM <table_name> x WHERE x.deleted = false AND x.<column_name> = 'value'.

我们尝试过的补救:

  1. 使用show_sql=true检查日志,我们没有得到任何中间操作,如插入,删除或更新。
  2. 检查副本db中的@@read_only标志,其值为1。

您可以运行MySQL SHOW VARIABLES命令来验证您的MySQL服务器是否以只读模式运行:

SHOW GLOBAL VARIABLES LIKE '%read_only%';

如果返回的变量值是ON而不是OFF,则可以将其设置为OFF,使用以下方法将variable_name替换为适用的变量(例如read_only):

SET GLOBAL variable_name = 'OFF';

然后再试一次。

注意,设置全局系统变量可能需要超级权限。

最新更新