我刚刚在 WSL 上的 Ubuntu 20 上安装了 Postgres。以下两项都将永远卡住:
CREATE DATABASE foo
WITH
OWNER = postgres
ENCODING = 'UTF8'
CONNECTION LIMIT = -1;
Run Code Online (Sandbox Code Playgroud)
和:
sudo -u postgres createdb foo
Run Code Online (Sandbox Code Playgroud)
日志没有任何内容:
postgres@postgres ERROR: canceling statement due to user request
postgres@postgres STATEMENT: CREATE DATABASE foo
WITH
OWNER = postgres
ENCODING = 'UTF8'
CONNECTION LIMIT = -1;
Run Code Online (Sandbox Code Playgroud)
造成这种情况的可能原因有哪些?
重新启动 Postgres 或重新启动计算机没有帮助,并且没有锁。我还尝试手动杀死每个锁。
小智 6
我和你有同样的问题。看来和wsl版本有关。我运行的是 wsl 1,所以我必须卸载 ubuntu 20.04 wsl,然后使用以下命令将版本设置为 2
wsl --set-default-version 2
Run Code Online (Sandbox Code Playgroud)
然后再次安装 ubuntu 20.04 wsl。现在一切似乎都井然有序,我可以毫无问题地创建数据库。
当语句挂起时,连接到postgres数据库并查找挂起连接的和pg_stat_activity。wait_eventwait_event_type
它很可能正在等待锁。在这种情况下,请结束持有锁的事务。
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |