Skip to content

GaussDB 环境变量

核心环境变量

GAUSSHOME

变量说明

  • GaussDB 安装目录
  • 指向 GaussDB 软件的根目录
  • 影响所有 GaussDB 命令的执行

配置示例

bash
export GAUSSHOME=/opt/gaussdb
export PATH=$GAUSSHOME/bin:$PATH

使用场景

  • 启动和停止数据库实例
  • 执行 GaussDB 管理命令
  • 运行 GaussDB 工具

LD_LIBRARY_PATH

变量说明

  • 动态链接库搜索路径
  • 包含 GaussDB 所需的共享库
  • 影响数据库进程的启动和运行

配置示例

bash
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH

使用场景

  • 数据库实例启动
  • GaussDB 工具执行
  • 自定义程序连接 GaussDB

PGHOST/PGPORT

变量说明

  • PGHOST:数据库服务器主机名或 IP 地址
  • PGPORT:数据库服务器端口号
  • 影响客户端连接数据库的默认参数

配置示例

bash
export PGHOST=localhost
export PGPORT=5432

使用场景

  • gsql 客户端连接
  • 应用程序连接数据库
  • 脚本连接数据库

PGDATABASE/PGUSER

变量说明

  • PGDATABASE:默认连接的数据库名
  • PGUSER:默认连接的用户名
  • 简化客户端连接操作

配置示例

bash
export PGDATABASE=postgres
export PGUSER=dbadmin

使用场景

  • 日常数据库管理操作
  • 脚本自动化执行
  • 应用程序开发测试

PGPASSWORD

变量说明

  • 数据库连接密码
  • 避免在命令行中明文输入密码
  • 简化自动化脚本编写

配置示例

bash
export PGPASSWORD=your_password_here

安全注意事项

  • 避免在配置文件中明文存储密码
  • 使用临时会话设置
  • 考虑使用 ~/.pgpass 文件存储密码

高级环境变量

GAUSSLOG

变量说明

  • GaussDB 日志文件目录
  • 指向数据库日志的存储位置
  • 影响日志文件的生成位置

配置示例

bash
export GAUSSLOG=/var/log/gaussdb

使用场景

  • 日志集中管理
  • 日志备份和归档
  • 故障排查和分析

GAUSSDATA

变量说明

  • GaussDB 数据文件目录
  • 指向数据库数据的存储位置
  • 简化数据库管理命令

配置示例

bash
export GAUSSDATA=/data/gaussdb/data

使用场景

  • 数据库实例启动和停止
  • 数据备份和恢复
  • 数据库迁移

PGOPTIONS

变量说明

  • 传递给服务器的额外选项
  • 支持设置服务器端参数
  • 影响数据库连接的行为

配置示例

bash
export PGOPTIONS='-c work_mem=64MB -c maintenance_work_mem=2GB'

使用场景

  • 临时调整会话参数
  • 测试不同参数配置
  • 优化特定应用的连接

PGSSLMODE

变量说明

  • SSL 连接模式
  • 控制客户端与服务器的 SSL 连接行为
  • 影响连接的安全性

配置示例

bash
export PGSSLMODE=require

常用值

  • disable:禁用 SSL
  • allow:优先使用非 SSL 连接
  • prefer:优先使用 SSL 连接
  • require:要求使用 SSL 连接
  • verify-ca:验证服务器 CA 证书
  • verify-full:验证服务器身份

环境变量管理

环境变量设置方法

临时设置

bash
export VARIABLE_NAME=value

永久设置

bash
# 用户级配置
cat >> ~/.bashrc << EOF
export GAUSSHOME=/opt/gaussdb
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
EOF

# 生效配置
source ~/.bashrc

特定会话设置

bash
# 在命令前临时设置环境变量
PGPORT=5433 gsql -d postgres

# 脚本中临时设置
#!/bin/bash

# 临时设置环境变量
GAUSSDATA=/data/gaussdb/data2 gs_ctl start -D $GAUSSDATA

环境变量查看方法

bash
# 查看所有环境变量
env

# 查看特定环境变量
echo $GAUSSHOME

# 检查环境变量是否设置
if [ -z "$GAUSSHOME" ]; then
    echo "GAUSSHOME 未设置"
fi

环境变量优先级

  • 命令行参数优先级最高
  • 会话级环境变量次之
  • 系统级环境变量最低
  • 配置文件参数作为默认值

常见问题(FAQ)

Q1: 如何检查环境变量是否正确配置?

A1: 可以使用以下方法检查:

  1. 查看环境变量值:
    bash
    echo $GAUSSHOME $PGPORT $PGUSER
  2. 执行 GaussDB 命令验证:
    bash
    gs_ctl --version
  3. 尝试连接数据库:
    bash
    gsql -d postgres -c "SELECT version();"

Q2: 环境变量配置错误会导致什么问题?

A2: 环境变量配置错误可能导致:

  1. 数据库无法启动
  2. GaussDB 命令执行失败
  3. 客户端无法连接数据库
  4. 数据库进程崩溃

Q3: 如何在不同环境中使用不同的配置?

A3: 可以使用以下方法:

  1. 为不同环境创建不同的环境变量配置文件
  2. 使用容器化部署,每个环境使用独立的配置
  3. 结合配置管理工具,如 Ansible、Chef 等
  4. 使用 CI/CD 工具实现环境差异化配置

Q4: 如何安全地管理环境变量?

A4: 安全管理环境变量的建议:

  1. 避免在配置文件中明文存储密码
  2. 使用 ~/.pgpass 文件存储数据库密码
  3. 限制配置文件的访问权限
  4. 定期轮换敏感环境变量
  5. 使用密钥管理服务存储敏感信息

Q5: 环境变量与 postgresql.conf 参数有什么区别?

A5: 主要区别:

  1. 作用范围:环境变量影响整个进程,配置参数影响数据库实例
  2. 配置方式:环境变量通过操作系统配置,配置参数通过配置文件或 SQL 命令配置
  3. 生效时机:环境变量在进程启动时生效,配置参数根据类型不同,生效时机不同
  4. 优先级:命令行参数 > 环境变量 > 配置文件参数