在安装openGauss数据库后即可在服务器端登录数据库。但如果需要远程连接openGauss数据库,则应先进行连接配置。具体的配置步骤如下。
openGauss数据库通过配置文件pg_hba.conf对远程连接进行安全控制。pg_hba.conf配置文件默认存放在data路径下,而且默认只允许本机进行连接(127.0.0.1/32)。
首先通过如下命令打开配置文件:
vi /openGauss/data/pg_hba.conf
在pg_hba.conf中,记录的含义:TYPE表示连接方式,DATABASE表示连接数据库,USER表示连接用户,ADDRESS表示连接地址,METHOD表示加密方式。
然后在配置文件中添加如下记录:
host all all 0.0.0.0/0 sha256
上述记录的含义:all表示全部(数据库、用户),0.0.0.0/0表示所有地址均可连接。由于这样的设置并不安全,因此在生产环境中建议根据需要进行设置。
修改完毕后,通过如下命令重启数据库:
[omm@bogon /]$ gs_ctl restart -D /openGauss/data
/openGauss/data目录下的配置文件postgresql.conf中的listen_addresses参数指定openGauss服务器使用哪些IP地址进行监听。一般来说,服务器可能存在多个网卡,每个网卡可以绑定多个IP地址,而该参数用于控制openGauss数据库到底绑定在哪个或者哪几个IP地址上。用户则可以通过客户端以该参数指定的IP地址来连接openGauss数据库。
openGauss数据库默认只监听本地主机127.0.0.1——这个IP地址是无法远程访问的。所以,为了远程连接数据库,需要修改配置文件postgresql.conf的监听地址参数listen_addresses。由于个人创建的虚拟机的IP经常会发生变化,因此可以设置listen_addresses='0.0.0.0',这样就无须每次启动虚拟机时都修改监听地址。
可以通过如下命令查看监听地址:
openGauss=# show listen_addresses;
listen_addresses
------------------
0.0.0.0
(1 row)
其中,0.0.0.0或星号“*”表示监听所有IP地址。由于配置监听所有IP地址的行为存在安全风险,因此在生产环境中不建议这样使用,推荐使用本机的有效IP地址。如果设置了多个IP,则需要用英文逗号“,”隔开。listen_addresses参数设置完成后需要重启数据库。
openGauss数据库的默认服务端口为5432和5433。
可以通过如下命令查看监听端口:
openGauss=# show port;
port
------
5432
(1 row)
如果不希望关闭防火墙,则应开放这两个端口,以便进行远程连接。具体命令如下:
[root@bogon /]# firewall-cmd --zone=public --add-port=5432/tcp -permanent
[root@bogon /]# firewall-cmd --zone=public --add-port=5433/tcp -permanent
重新加载防火墙的命令如下:
[root@bogon /]# firewall-cmd -reload
查看防火墙开放端口的命令如下:
[root@bogon /]# firewall-cmd --list-port
5432/tcp 5433/tcp
omm为安装openGauss数据库时创建的初始化用户,不能用于远程连接数据库。另外,omm拥有管理员权限,只能用于数据库管理。所以,使用数据库时还需要创建数据库用户。此外,数据库安装完成后默认创建postgres数据库。
在服务器上使用omm用户直接登录postgres数据库的命令如下:
[omm@bogon /]$ gsql -d postgres
gsql ((openGauss-lite 5.0.0 build a07d57c3) compiled at 2023-03-29 03:49:47 commit 0 last mr release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=#
创建测试test数据库的命令如下:
openGauss=# create database test;
create database
openGauss数据库默认兼容Oracle数据库(指定参数dbcompatibility='A')。不同兼容模式下的语法存在一定差异。本书以A兼容模式为主进行讲解。
如果想创建兼容MySQL的数据库,可以指定参数dbcompatibility='B'。例如下面的命令:
openGauss =# create database mysql dbcompatibility='B';
create database
登录test数据库的命令如下:
[omm@bogon /]$ gsql -d test
gsql ((openGauss-lite 5.0.0 build a07d57c3) compiled at 2023-03-29 03:49:47 commit 0 last mr release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
test=#
在test数据库上创建数据库用户test的命令如下:
test=# create user test identified by 'P@ssw0rd';
create role
在创建用户后,openGauss数据库会在数据库中创建一个同名的模式(schema),具体命令如下:
test=# \dn
List of schemas
Name | Owner
-----------------+----------
blockchain | omm
cstore | omm
db4ai | omm
dbe_perf | omm
dbe_pldebugger | omm
dbe_pldeveloper | omm
dbe_sql_util | omm
pkg_service | omm
public | omm
snapshot | omm
sqladvisor | omm
test | test
(12 rows)
至此就可以使用test用户远程连接openGauss数据库了。
test用户使用gsql连接本地的test数据库,具体命令如下:
[omm@bogon ~]$ gsql -d test -U test
Password for user test:
首先输入test用户的密码,然后按Enter键即可:
gsql ((openGauss-lite 5.0.0 build a07d57c3) compiled at 2023-03-29 03:49:47 commit 0 last mr release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
test=> help
You are using gsql, the command-line interface to gaussdb.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with gsql commands
\g or terminate with semicolon to execute query
\q to quit
test=>