无root权限使用pgadmin python出现/var/lib/pgadmin创建错误如何解决
问题原因
默认pgadmin4的配置会指向需要root权限才能写入的系统目录/var/lib/pgadmin、/var/log/pgadmin,无root权限的普通用户没有这些路径的写入权限,因此启动时报错。
解决方案
- 步骤1:在个人home目录下创建pgadmin所需的专属目录,避免访问系统路径
mkdir -p ~/pgadmin4/{config,data,log}
- 步骤2:创建自定义配置文件,覆盖默认的系统路径
新建文件~/pgadmin4/config/config_local.py,写入以下内容:
import os # 所有路径统一指向个人目录下的pgadmin4文件夹 BASE_DIR = os.path.expanduser("~/pgadmin4") DATA_DIR = os.path.join(BASE_DIR, "data") LOG_FILE = os.path.join(BASE_DIR, "log/pgadmin4.log") SQLITE_PATH = os.path.join(BASE_DIR, "data/pgadmin4.db") SESSION_DB_PATH = os.path.join(BASE_DIR, "data/sessions") STORAGE_DIR = os.path.join(BASE_DIR, "data/storage") # 可选配置:如需外部访问,可取消注释修改以下参数 # DEFAULT_SERVER = '0.0.0.0' # DEFAULT_SERVER_PORT = 5050
- 步骤3:设置环境变量,指定pgadmin加载自定义配置
临时生效(仅当前终端窗口可用):
export PGADMIN_CONFIG_FILE="$HOME/pgadmin4/config/config_local.py"
永久生效(所有终端窗口可用):
echo 'export PGADMIN_CONFIG_FILE="$HOME/pgadmin4/config/config_local.py"' >> ~/.bashrc source ~/.bashrc
- 步骤4:重新启动pgadmin4
pgadmin4
首次启动会要求设置登录邮箱和密码,作为后续web端访问的管理员账号,启动成功后访问默认地址http://127.0.0.1:5050即可使用。
内容的提问来源于stack exchange,提问作者user185887
相关产品推荐
相关产品推荐

