CentOS7.9安装Wiki.js遇数据库初始化错误:public schema权限不足
错误原因及解决方法
错误原因
这个错误的核心原因是:你配置Wiki.js使用的PostgreSQL数据库账号,没有对public模式的创建表权限。
虽然日志显示数据库连接成功,但Wiki.js初始化时需要自动创建migrations等系统表,而当前使用的数据库账号在PostgreSQL默认的public模式下,没有执行CREATE TABLE操作的权限,因此抛出"permission denied for schema public"错误。
另外,你仅完成了PostgreSQL的安装和初始化,未针对Wiki.js创建专用的数据库、用户,也未分配对应权限,这是导致权限不足的根本原因。
解决步骤
- 切换到PostgreSQL系统用户:
su - postgres
- 进入PostgreSQL交互式命令行:
psql
- 创建Wiki.js专用数据库(示例名为
wikijs):
CREATE DATABASE wikijs;
- 创建专用数据库用户(示例名为
wikijs_user,替换your_secure_password为实际密码):
CREATE USER wikijs_user WITH PASSWORD 'your_secure_password';
- 为用户分配目标数据库的全部权限:
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikijs_user;
- 切换到
wikijs数据库,为用户分配public模式的全部权限:
\c wikijs GRANT ALL PRIVILEGES ON SCHEMA public TO wikijs_user;
- 退出PostgreSQL命令行:
\q
- 修改Wiki.js的
/usr/local/wiki/config.yml配置文件,将数据库连接信息替换为刚创建的用户、数据库名和密码,之后重新启动Wiki.js:
node server
内容的提问来源于stack exchange,提问作者user1980099
相关产品推荐
相关产品推荐

