使用Python远程连接到云服务器openGuass(修复了若干bug)
如果是华为云虚拟ecs,则需要先打开修改安全组配置规则

添加入方向规则

然后正式开始,打开你的shell软件(或者华为云的cloudshell),登录创建链接

1.切换到omm用户,以操作系统用户omm登录数据库主节点。
su – omm
使用gsql工具登陆数据库。
gsql -d postgres -p 26000 -r
创建数据库lkun。
CREATE DATABASE lkun ENCODING 'UTF8' TEMPLATE template0;
连接finance数据库。
connect lkun
创建名为lkun的schema,并设置lkun为当前的schema。
CREATE SCHEMA lkun;
将默认搜索路径设为lkun。
SET search_path TO lkun;
删除表client
DROP TABLE IF EXISTS client;
2.关闭前面的窗口,新建一个shell窗口,在GS_HOME中查找pg_hba.conf文件,华为云默认的在/gaussdb/data/db1里面
cd /gaussdb/data/db1
vim pg_hba.conf
在里面找到ipv4的地方,添加这行
host all all 0.0.0.0/0 md5

Esc之后:wq退出,之后进入omm保存
su – omm
gs_ctl reload -D /gaussdb/data/db1/

3.修改数据库监听地址。
在GS_HOME中,华为云数据库GS_HOME默认设置也在/gaussdb/data/db1,打开postgresql.conf
cd /gaussdb/data/db1
vim postgresql.conf
将listen_addresses的值修改成为*。
listen_addresses = '*'

接着,取消掉password_encryption_type的注释,修改:
password_encryption_type = 1

修改完成后esc,:wq退出,重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。
gs_ctl restart -D /gaussdb/data/db1/
4.使用omm用户登陆数据库给dbuser用户授权
su – omm
gsql -d postgres -p 26000 -r
创建用户,此处名字取lk,密码取cqq_lk123:
create user lk identified by 'cqq_lk123';
alter user lk sysadmin;

然后就可以本地编写一个python代码测试是否成功了!
import psycopg2
try:
# 配置连接参数
conn = psycopg2.connect(
database="lkun",
user="lk",
password="cqq_lk123",
host="192.168.56.105",#这里如果是华为云,换成公网ip地址(非192开头的,例如1.93.131.221)
port="26000",
sslmode="disable"
)
cursor = conn.cursor()
cursor.execute("SELECT version();")
print(cursor.fetchone())
conn.commit()
print("连接成功")
except Exception as e:
print(f"连接失败: {e}")
finally:
# 关闭连接
if 'conn' in locals():
conn.close()
print("数据库连接已关闭")

