数据库及工具下载直接在官网找到对应版本即可,本教程以GBase8sV8.8 x86版本为例。
groupadd gbasedbt
useradd -g gbasedbt gbasedbt
passwd gbasedbt
# 密码为
# GBase 8s数据库默认仅使用操作系统用户,用户操作在操作系统层实现,授权在数据库内实现。因此,该用户作为gbase的管理员用户,可登录gbase数据库。
# 创建 GBase 8s 数据库安装目录
mkdir -p /opt/GBASE/gbase
chown gbasedbt:gbasedbt /opt/GBASE/gbase
# 开始安装
sh ids_install
# 按回车
# 在安装类型处:
# 选1,择典型安装
# 回车
# 在是否创建实例处:
Create a server instance?
->1- Yes - create an instance
2- No - do not create an instance
ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS TO ACCEPT THE DEFAULT::
# 选2,不创建实例,安装完成后再创建实例
# 进入安装目录的 etc目录下
cd /opt/GBASE/gbase/etc
# 使用 gbasedbt 用户执行 GBaseInit_gbasedbt.sh 脚本,自动创建并初始化实例。
su - gbasedbt
sh GBaseInit_gbasedbt.sh
# 选择服务器的对外ip
CHOOSE SERVICE IP ADDRESS FROM THE LIST:
1) 172.19.0.1
2) 172.17.0.1
3) 10.110.200.244
4) 127.0.0.1
ENTER THE NUMBER FOR YOUR CHOICE [Default:172.19.0.1]: 3
# 端口默认 9088
SPECIFY THE PORT NUMBER FOR GBASE [Default:9088]:
# 安装类型,选1:典型
INITIALIZE TYPE:
1) TYPICAL -- Initialize the instance with all features configured with default values.
2) CUSTOM -- Initialize the instance with specific features that you need.
ENTER THE NUMBER FOR YOUR CHOICE [Default:1]: 1
安装脚本会在gbasedbt的Home路径下,自动生成一个名称为profile.gbaseserver的文件,记录了新创建数据库实例需要的环境变量。
[gbasedbt@devsvr ~]$ ls
profile.gbaseserver
# 可以使用cat命令查看文件的内容。
[gbasedbt@devsvr ~]$ cat profile.gbaseserver
export GBASEDBTSERVER=gbaseserver
export GBASEDBTDIR=/opt/gbase
export GBASEDBTSQLHOSTS=/opt/gbase//sqlhosts.gbaseserver
export ONCONFIG=onconfig.gbaseserver
export PATH=/opt/gbase/bin:$PATH
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
unset GL_USEGLU
# 使用source命令,使环境变量生效。
[gbasedbt@devsvr ~]$ source profile.gbaseserver
# 使用env查看环境变量。
[gbasedbt@devsvr ~]$ env | grep GBASE
GBASEDBTSQLHOSTS=/opt/gbase/#/sqlhosts.gbaseserver
GBASEDBTSERVER=gbaseserver
GBASEDBTDIR=/opt/gbase
# 查看GBase 8s的进程信息
# GBase 8s启动后,会运行名称为oninit的进程,可以使用ps命令查看。
ps -ef | grep oninit
# 查看数据库运行状态
onstat -
# 启动数据库
oninit -vy
# 停止数据库
onmode -ky
# 查看最新的20条日志
onstat -m
su - gbasedbt
[gbasedbt@devsvr ~]$ dbaccess - -
Your evaluation license will expire on 2022-06-17 00:00:00
> create database portal;
Database created.
> database portal;
Database selected.
> create table t_user(f_userid int, f_username varchar(50));
Table created.
> insert into t_user values(1,'gbasedbt');
1 row(s) inserted.
> select * from t_user;
cd /opt/GBASE/gbase/uninstall/uninstall_ids/
./uninstallids
# 然后清除残余目录,删除gbasedbt用户
userdel -r gbasedbt
GBase 8s数据库默认仅使用操作系统用户,用户操作在操作系统层实现,授权在数据库内实现。
使用root用户在系统中创建系统用户
useradd portaladmin
passwd portaladmin
系统用户建好后,用管理员登录数据库,切换到要给用户授权的数据库,进行授权操作
通过客户端登录,数据库选择要授权的库,如 portal,登录进去后,执行如下命令授权:
GRANT resource TO portaladmin;
授权完成后即可通过 portaladmin 访问portal库。
这里我们开启数据库内部用户,数据库内部用户需要通过配置才能开启。
在/etc/gbasedbt目录(如没有,使用root用户创建)下创建,检查是否创建allowed.surrogates
安装默认创建了该文件allowed.surrogates配置文件
内容如下:
USERS:daemon
su - gbasedbt
onstat -c USERMAPPING /*检查是否开启*/
onmode -wf USERMAPPING=ADMIN
OFF 只允许操作系统的用户访问数据库,不允许非系统用户访问数据库。
BASIC 允许非系统用户访问数据库,但不允许执行对数据库系统的授权用户操作,如 DBSA, DBSSO, AAO 等。即使被映射的用户具有上述权限。
ADMIN 允许非系统用户访问数据库。且如果被映射的用户为授权用户,则非系统用户也被允许执行授权用户操作。
su - gbasedbt
onmode -cache surrogates
onstat -m
su - gbasedbt
mkdir -p /home/gbasedbt/users
chmod 777 /home/gbasedbt/users
dbaccess sysuser - << EOF
CREATE DEFAULT USER WITH PROPERTIES USER daemon HOME "/home/gbasedbt/users" ;
EOF
以上仅需要第一次初始化执行
dbaccess sysuser - << EOF
CREATE USER testuser WITH PASSWORD 'gbasedbt';
EOF
echo "grant resource to testuser;" | dbaccess mydb -
dbaccess - -
connect to "mydb@gbase01" user "testuser";
IP:127.0.0.1
端口:9088
实例名:gbaseserver
模式:gbasedbt、portal等
用户名:gbasedbt
密码:前面创建操作系统用户时设置的用户密码
Opening primary chunks...FAILED
oninit: Fatal error in shared memory initialization
WARNING: server initialization failed or timed out.
Check the message log, online.log, for errors.
使用 onstat -m 命令查看近20行日志信息。
10/30/24 16:54:55 The chunk '/home/gbase/gbase/gbaseserver_dbs/rootdbs' must have READ/WRITE permissions for owner (600).
10/30/24 16:54:55 oninit: Fatal error in shared memory initialization
10/30/24 16:54:55 Process exited with return code 126: /bin/sh /bin/sh -c /home/gbase/gbase/etc/alarmprogram.sh 4 7 "Database Server Initialization failure." "The chunk '/home/gbase/gbase/gbaseserver_dbs/rootdbs' must have READ/WRITE permissions for owner (600)." "" 7018
表示/home/gbase/gbase/gbaseserver_dbs/rootdbs权限不对,这里提示需要600权限。
chmod 755 /home/gbase/gbase/gbaseserver_dbs
chmod 660 /home/gbase/gbase/gbaseserver_dbs/*
但是给了600权限后服务能起来,但是用户无法连接上,需要给660权限。
chmod 755 /home/gbase/gbase/gbaseserver_dbs
chmod 660 /home/gbase/gbase/gbaseserver_dbs/*