工具 | 本文环境 | 适用环境 |
---|---|---|
服务器 | CentOS 7(2C4G) | openEuler 20.03+、CentOS 7.X |
openGauss | 3.1.1 Lite | 3.x |
gaussdb需要在非root用户下运行
# 创建用户
useradd gaussdb
# 修改密码
passwd gaussdb
# 将用户加入sudoers
visudo
# 添加以下内容
gaussdb ALL=(ALL) ALL
openGauss运行对Linux Kernel内核的信号量有要求这里需要设置一下
# 编辑系统配置文件
vi /etc/sysctl.conf
# 增加以下内容
kernel.sem = 250 32000 100 999
# 使配置生效
sysctl -p
yum install -y wget tar flex bison ncurses-devel glibc-devel patch readline-devel libnsl libaio-devel
# 创建下载目录
mkdir /home/downloads
# 创建openGauss根目录
mkdir /gaussdb
# 授予权限
chmod 777 /home/downloads
chown gaussdb:gaussdb /gaussdb
# 切换用户
su gaussdb
openGauss提供了4个版本:企业版、极简版、轻量版,分布式镜像,官方地址:https://www.opengauss.org/zh/download/
企业版需要8C32G的硬件,轻量版2C4G甚至2C2G都可以,所以这里选择轻量版openGauss Lite 未登录状态下,官网不提供下载链接,注册登录后,根据部署环境复制对应的安装包下载链接即可
# 进入下载目录
cd /home/downloads
# 下载openGauss轻量版(CentOS)
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.1/x86/openGauss-Lite-3.1.1-CentOS-x86_64.tar.gz -O openGauss-Lite-3.1.1.tar.gz
# 下载openGauss轻量版(openEuler)
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.1/x86_openEuler/openGauss-Lite-3.1.1-openEuler-x86_64.tar.gz -O openGauss-Lite-3.1.1.tar.gz
# 解压至openGauss根目录
tar -zxf openGauss-Lite-3.1.1.tar.gz -C /gaussdb/
#进入目录
cd /gaussdb
# 单节点安装
echo pwd@2023 | sh ./install.sh --mode single -D /gaussdb/data -R /gaussdb/install --start
# 查看gaussdb进程
ps ux | grep gaussdb
# 输出示例
gaussdb 1890 0.0 0.2 22960 4228 pts/0 S 16:11 0:00 bash
gaussdb 2511 1.3 12.6 2200356 190048 ? Ssl 16:26 0:00 /gaussdb/install/bin/gaussdb -D /gaussdb/data
gaussdb 2583 0.0 0.3 26152 4844 pts/0 R+ 16:27 0:00 ps ux
gaussdb 2584 0.0 0.1 21980 2428 pts/0 S+ 16:27 0:00 grep --color=auto gaussdb
# 查看gaussdb状态
gs_ctl query -D /gaussdb/data
openGauss提供了在命令行下运行的数据库连接工具gsql,我们可以通过gsql命令行执行内部命令管理数据库,也可以执行SQL,做用户管理增删改查等操作 进入openGauss Shell需要gsql命令并通过-d参数指定数据库,这里指定openGauss默认创建的postgres数据库即可
# 进入命令行
gsql -d postgres
# 完整命令参考
gsql -h 127.0.0.1 -p 5432 -U opengauss -d postgres
# 查看所有数据库
\l
# 查看所有用户
\du
# 切换当前数据库
\c {database}
# 查看当前数据库所有表
\dt
# 查看指定表信息
\dt {table}
# 退出gsql命令行
\q
# 创建数据库
CREATE DATABASE test;
# 创建表(记得使用\c命令切换数据库)
CREATE TABLE t1(id int,body varchar(100));
# 创建用户
CREATE USER gauss PASSWORD 'Test#1357';
# 指定用户添加指定角色
ALTER USER gauss SYSADMIN;
# 修改密码
ALTER ROLE gauss PASSWORD 'Test#2468';
# 赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE test TO gauss;
# 移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE test TO gauss;
3.X Lite版本单机模式部署,默认是使用的端口是5432、5433
# 查看gaussdb端口使用
netstat -tunlp | grep gaussdb
# 输出示例
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 2511/gaussdb
tcp 0 0 127.0.0.1:5433 0.0.0.0:* LISTEN 2511/gaussdb
tcp6 0 0 ::1:5432 :::* LISTEN 2511/gaussdb
tcp6 0 0 ::1:5433 :::* LISTEN 2511/gaussdb
给openGauss开放5432端口,开放端口供后续远程连接使用
# 添加端口
sudo firewall-cmd --add-port=5432/tcp --permanent
# 重载规则
sudo firewall-cmd --reload
Open默认不允许远端连接,为了方便测试,这里配置允许任意用户通过任意客户端访问任意数据库,加密方式为:sha256(openGauss)默认加密方式
#修改配置文件
vi /gaussdb/data/pg_hba.conf
#增加以下配置
#第一个all表示所有数据库,可以用具体数据库名称替代
#第二个all表示所有用户,可以用具体用户名替代
#0.0.0.0/0 表示任意客户端,可以用具体ip替代,例如:192.168.1.100/32
#sha25是openGauss默认加密方式
host all all 0.0.0.0/0 sha256
openGauss默认只绑定了127.0.0.1,不支持远程访问,这里需要修改配置
# 修改配置文件
vi /gaussdb/data/postgresql.conf
# 增加以下配置
listen_addresses = '0.0.0.0'
# 重启服务
gs_ctl restart -D /gaussdb/data
# 查看监听情况
netstat -tunlp | grep gaussdb
# 输出示例
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 3766/gaussdb
tcp 0 0 0.0.0.0:5433 0.0.0.0:* LISTEN 3766/gaussdb
我们可以通过gsql命令指定host进行远程连接测试
#使用gsql命令指定本机IP进行连接测试
gsql -h 192.168.66.21 -p 5432 -U gauss -d test
也可以通过官方提供的Data Studio远程连接,并管理openGauss数据库,另外目前比较流程的DBeaver、Navicat等是不支持以sha256方式连接openGauss的,需要修改openGauss的加密方式,不然连接会报错
Invalid or unsupported by client SCRAM mechanisms
# 启动服务
gs_ctl start -D /gaussdb/data
# 停用服务
gs_ctl stop -D /gaussdb/data
# 重启服务
gs_ctl restart -D /gaussdb/data