由于 MD5 加密算法安全性低,存在安全风险,不建议使用。openGauss 对原生 PostgreSQL 的通信协议进行了安全加固,这导致与 PostgreSQL 的默认通信协议互相不兼容了,因此,使用 pgloader 的 PostgreSQL 原生版本默认是不能连接 openGauss 的。会报类似下述错误:

通过修改该 GUC 参数修改数据库加密算法,执行如下命令将参数修改为 1 ,同时支持 md5 和 sha256

gs_guc reload -N all -I all -c "password_encryption_type=1"

一定要在设置完上述参数后,再新建用户。

openGauss 设置监听

若不设置,可能会像我一样遇到 “Failed to connect to pgsql at “xxx” (port 15400) as user “opengauss_test”: Database error 28000: no pg_hba.conf entry for host “172.17.0.2”.”


设置方法:

cd /opt/huawei/install/data/dn/
vi pg_hba.conf
在IPv4中新增一行
host    all    all     0.0.0.0/0                      md5
然后重启数据库
[omm@pekphisprb70593 dn]$ gs_om -t stop
[omm@pekphisprb70593 dn]$ gs_om -t start

测试用户和数据

这一步是可选的,包括源库的数据库、用户和原始数据,目标库的数据库和用户。如果都已经有了则直接跳过看下一步,缺啥补啥。
创建目标库 openGauss 的用户及 database.

[omm@pekphisprb70593 ~]$ gsql -d postgres -p 15400 
openGauss=# CREATE USER opengauss_test identified by 'Gauss_234'; 
openGauss=# GRANT ALL PRIVILEGES TO opengauss_test; 
openGauss=# CREATE DATABASE opengauss_db with owner opengauss_test ENCODING 'utf8' template = template0; 

新建了一个空表 test2。

[omm@pekphisprb70593 dn]$ gsql -d opengauss_db -p 15400
opengauss_db=# create table if not exists test2(id integer);
CREATE TABLE

创建源数据库和用户,刷新系统授权表。

CREATE DATABASE IF NOT EXISTS mysql_db1 default charset utf8;
CREATE USER mysql_t1 identified by 'Mysql_234' ;
GRANT ALL PRIVILEGES ON *.* TO 'mysql_t1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

构造数据

mysql@siaphisprk01345:~> mysql -u mysql_t1 -p
mysql> use mysql_db1;
create table if not exists test1 (id int(10),name char(20),salary float,time datetime(6),addr varchar(200),primary key(id)) ;
insert into test1 values (1,'zhangsan',2000.00,'2018-06-01 00:00:00','beijing');
insert into test1 values (2,'李四',2000.89,'2018-06-01 00:00:00','西安');
insert into test1 values (3,'Bob',2000,'2018-06-02 00:00:00','南京');

#创建了一个和目标数据库表结构不同的test2。
create table if not exists test2(id int(10),name varchar(20));
insert into test2 values (1234567,'Kevin');
#创建空表test3。
create table if not exists test3(id int(10));

三、配置文件

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐