🎯 脚本【/etc/postgresql/*/main/pg_hba.conf】
#!/bin/bash
echo "========================================="
echo "pgAdmin4 自动修复安装脚本"
echo "========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# 检查 root 权限
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}请使用 sudo 运行此脚本${NC}"
exit 1
fi
# 1. 创建必要目录
echo -e "${BLUE}[1/7] 检查并创建必要目录...${NC}"
mkdir -p /etc/apt/sources.list.d/
mkdir -p /usr/share/keyrings/
chmod 755 /etc/apt/sources.list.d/
echo -e "${GREEN}✓ 目录检查完成${NC}\n"
# 2. 清理旧文件
echo -e "${BLUE}[2/7] 清理旧配置文件...${NC}"
rm -f /usr/share/keyrings/packages-pgadmin-org.gpg
rm -f /usr/share/keyrings/y
rm -f /etc/apt/sources.list.d/pgadmin4.list
echo -e "${GREEN}✓ 清理完成${NC}\n"
# 3. 下载 GPG 密钥
echo -e "${BLUE}[3/7] 下载 pgAdmin GPG 密钥...${NC}"
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
if [ -f /usr/share/keyrings/packages-pgadmin-org.gpg ]; then
echo -e "${GREEN}✓ GPG 密钥下载成功${NC}"
ls -lh /usr/share/keyrings/packages-pgadmin-org.gpg
else
echo -e "${RED}✗ GPG 密钥下载失败${NC}"
exit 1
fi
echo ""
# 4. 添加仓库
echo -e "${BLUE}[4/7] 添加 pgAdmin 软件源...${NC}"
echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/noble pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list
if [ -f /etc/apt/sources.list.d/pgadmin4.list ]; then
echo -e "${GREEN}✓ 软件源添加成功${NC}"
cat /etc/apt/sources.list.d/pgadmin4.list
else
echo -e "${RED}✗ 软件源添加失败${NC}"
exit 1
fi
echo ""
# 5. 更新软件包列表
echo -e "${BLUE}[5/7] 更新软件包列表...${NC}"
apt update
echo -e "${GREEN}✓ 更新完成${NC}\n"
# 6. 安装 pgAdmin4
echo -e "${BLUE}[6/7] 安装 pgAdmin4-web...${NC}"
apt install -y pgadmin4-web
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ pgAdmin4 安装成功${NC}\n"
else
echo -e "${RED}✗ pgAdmin4 安装失败${NC}\n"
exit 1
fi
# 7. 配置 pgAdmin
echo -e "${BLUE}[7/7] 配置 pgAdmin Web 服务...${NC}"
echo -e "${YELLOW}请按提示输入管理员邮箱和密码${NC}\n"
/usr/pgadmin4/bin/setup-web.sh
# 验证安装
echo ""
echo "========================================="
echo -e "${GREEN}安装完成!${NC}"
echo "========================================="
echo ""
# 显示访问信息
SERVER_IP=$(hostname -I | awk '{print $1}')
echo -e "访问地址: ${BLUE}http://$SERVER_IP/pgadmin4${NC}"
echo ""
# 显示服务状态
echo "Apache 服务状态:"
systemctl status apache2 --no-pager | grep "Active"
echo ""
echo "========================================="
📝 使用一键脚本
保存并运行:
# 创建脚本文件
cat > install-pgadmin.sh << 'EOF'
# 粘贴上面的完整脚本内容
EOF
# 赋予执行权限
chmod +x install-pgadmin.sh
# 运行脚本
sudo ./install-pgadmin.sh