openGauss数据库开发实战
上QQ阅读APP看书,第一时间看更新

1.2 配置

在安装openGauss数据库后即可在服务器端登录数据库。但如果需要远程连接openGauss数据库,则应先进行连接配置。具体的配置步骤如下。

1.修改配置文件pg_hba.conf

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

2.修改默认监听地址

/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参数设置完成后需要重启数据库。

3.开放openGauss数据库服务端口

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

4.创建数据库和数据库用户

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=>