gpt4 book ai didi

postgresql - 错误 : cannot execute CREATE TABLE in a read-only transaction

转载 作者:行者123 更新时间:2023-11-29 11:12:54 25 4
gpt4 key购买 nike

我正在尝试设置 pgexercises我本地机器上的数据。当我运行时:psql -U <username> -f clubdata.sql -d postgres -x我收到错误:psql:clubdata.sql:6: ERROR: cannot execute CREATE SCHEMA in a read-only transaction .

为什么它会在我的本地机器上创建一个只读数据库?我可以改变这个吗?

最佳答案

通常这种错误最可能的原因是:

  • 尝试在只读副本上创建语句(整个实例是只读的)。

  • <username>default_transaction_read_only设置为开启

  • 数据库有default_transaction_read_only设置为开启

提到的脚本的第一行是:

CREATE DATABASE exercises;
\c exercises
CREATE SCHEMA cd;

并且您报告错误发生在 CREATE SCHEMA 在第 6 行,而不是之前。

这意味着 CREATE DATABASE当由 <username> 运行时确实有效.如果上述任何原因直接适用,它就不会起作用。

从技术上可以解释这一点的一种可能性是 default_transaction_read_only将是 ONpostgresql.conf文件,并设置为 OFF对于数据库 postgres ,调用 psql 连接到的那个,通过 ALTER DATABASE取代配置文件的声明。

这就是为什么 CREATE DATABASE有效,但是一旦它使用 \c 连接到不同的数据库, default_transaction_read_only session 的设置将翻转为 ON .

当然,这将是一个非常奇怪和不寻常的配置。

关于postgresql - 错误 : cannot execute CREATE TABLE in a read-only transaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com