煮啵最近在完成数据库系统的课设,在虚拟机上配置的opengauss数据库连接data studio和python时可谓困难重重,搜遍全网都难以解决。此文旨在记录自己的艰苦历程,如果能帮助到遇到同样问题的人最好不过啦。
一、连接Data studio
正常情况下,在界面输入,得到类似如下界面:
选择enp0s3的inet地址作为连接时的host IP连接data studio即可。
但是煮啵本人偏偏遇到了从未有人遇到过的情景,enp0s3开启但没有inet地址??煮啵到现在其实都没有搞明白原因出在哪里,但是过了好久再次登上虚拟机,发现enp0s3和enp0s8网卡没开启,在利用root用户登录后(煮啵真的很菜,转成omm用户就转不回root用户了,甚至只能靠重启虚拟机改变。。。),输入
systemctl start NetworkManager
突然得到了具有inet地址的enp0s3!!皆大欢喜!!然后Data studio很迅速的就连接上了!
二、连接python
import psycopg2
conn = psycopg2.connect(database="你的数据库名称", user="你的用户", password="你的用户密码", host="上述找到的IP地址", port="你的端口")
cur = conn.cursor()
短短三句代码,却耗费了煮啵昨天一天的精气神,终于在今日凌晨一点解决。。原因是pip下载的psycopg2到目前只支持md5加密。而当初跟着教程配置opengauss数据库时设置的是sha256加密方式。因此python一直报如下错误,根本原因是sha256无法被识别:
psycopg2.OperationalError: connection to server at "192.168.56.101", port 26000 failed: none of the server's SASL authentication mechanisms are supported
解决方法:
1.转换路径到pg_hba.conf文件所在路径
cd /gaussdb/database/db1 #改成你自己的路径
2.通过vi pg_hba.conf对其中内容进行修改
将host all all 0.0.0.0/0 sha256改成 host all all 0.0.0.0/0 md5
3.重启数据库
停止:gs_om -t stop
启动:gs_om -t start
注意!更改加密方式之后,之前自己建立的用户密码不能正常使用,需要修改一下
4.利用gsql连接到postgres数据库之后,修改用户密码,与上一个要不一样
alter user 你要修改的用户名 identified by '密码,要与上一个不一样'
修改完之后就会提示使用md5加密的密码,再运行上述python代码就能很丝滑啦啊哈哈哈哈哈(要改一下代码中的密码哈,不要像煮啵一样运行提示密码不对才意识到自己光改用户密码不改代码中密码)
完结撒花!!快哉快哉!!
每次都遇到神奇难题,然后费劲解决后真的巨开心无比!!
我是天财猫猫毛,我们下个疑难杂症再见!