一 、 测试环境
1、操作系统:
CentOS操作系统官方下载地址:/
(Tips:目前官方版本已经到8、9)
2、DataBase版本:
根据操作系统下载匹配的数据库版本和JDBC驱动包。
官方下载地址:)
3、JDK版本:
登录网址:
展开全文
选择对应jdk版本下载。(Tips:可在Windows下载完成后,通过FTP或者SSH到发送到Linux上)。
4、本实验预置环境
1)操作系统版本:CentOS 7 64位(CentOS Linux release 7.6.1810)
2)DataBase&JDBC版本:
üopenGauss 2.0.1。
üJDBC驱动版本:JDBC_2.0.0
3)JDK版本:Java 11.0.17
二、Linux环境安装Java环境及配置步骤
1、登录到Linux环境,切换到root用户(Tips:需要root密码)
2、在usr目录下建立java安装目录
3、将“jdk-11.0.17_linux-x64_bin.tar.gz” 上传到 /usr/java/ 目录。(Tips:可通过FTP或者SSH 发送到Linux系统,在通过cp命令进行复制)
4、解压jdk到当前目录,得到文件夹“jdk-11.0.17”(Tips:下载不同版本的JDK文件名不同)。
5、安装完毕可以建立一个链接以节省目录长度
6、编辑配置文件,配置环境变量
在文本的末尾添加如下内容:
7、重启机器或执行命令
或
8、查看安装情况
9、可能出现的错误信息:
出现这个错误的原因可能是在32位的操作系统上安装了64位的jdk,
1、查看jdk版本和Linux版本位数是否一致。
2、查看你安装的Ubuntu是32位还是64位系统:
到此,Java环境配置完成。
三、准备链接数据库的环境
1、修改数据库的pg_hba.conf文件。
在GS_HOME中查找pg_hba.conf文件,本实验中数据库GS_HOME设置的为/gaussdb/data/db1,实际操作中GS_HOME地址可以查看安装时的配置文件
“/soft/openGauss/clusterconfig.xml”中的
将以下内容添加进pg_hba.conf文件中。(Tips:当在链接时如果提示“FATAL: Forbid remote connection with trust method!”,则需要更改目标IP对应的 客户端接入认证 将 trust 改成sha256)。
切换omm用户登陆,使用gs_ctl命令将策略生效 。
2、连接数据库后,进入SQL命令界面。创建测试用户dbuser,密码为Gauss#3demo 。
3、创建测试数据库demo。
使用gsql工具登陆数据库。 登录用户为dbuser,密码为Gauss#3demo (或者为用户自定义的密码)。
创建数据库demo
4、创建名为demo的schema,并设置demo为当前的schema。
将默认搜索路径设为demo。
5、创建测试表websites。
6、插入数据。
7、退出数据库
8、修改数据库监听地址。
在GS_HOME中,本实验中数据库GS_HOME设置的为/gaussdb/data/db1。
将listen_addresses的值修改成为*。
修改完成后重启数据库生效(-D后面的数据库默认路径,需要根据实际情况进行修改)。
9、将对应的JDBC驱动包 “postgresql.jar” 上传到 /soft 目录。(Tips:可通过FTP或者SSH 发送到Linux系统,在通过cp命令进行复制)。
到此,链接数据库的环境准备就绪。
四、链接测试
1、连接openGauss并执行java代码
1)使用Java程序连接数据库并进行查询。在/soft目录中创建openGaussDemo.java文件:
进入编辑openGaussDemo.java文件模式:
将如下文件内容拷贝至openGaussDemo.java文件。
// 打开链接System. out.println( "连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询System. out.println( " 实例化Statement对象..."); stmt = conn.createStatement;String sql;sql = "SELECT id, name, url FROM demo.websites"; ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库while(rs.next){ // 通过字段检索intid = rs.getInt( "id"); String name = rs.getString( "name"); String url = rs.getString( "url");
// 输出数据System. out.print( "ID: "+ id); System. out.print( ", 站点名称: "+ name); System. out.print( ", 站点 URL: "+ url); System. out.print( "\n"); }// 完成后关闭rs.close;stmt.close;conn.close;} catch(SQLException se){ // 处理 JDBC 错误se.printStackTrace;} catch(Exception e){ // 处理 Class.forName 错误e.printStackTrace;} finally{ // 关闭资源try{ if(stmt!= null) stmt.close; } catch(SQLException se2){ } // 什么都不做try{ if(conn!= null) conn.close; } catch(SQLException se){ se.printStackTrace;}}System. out.println( "Goodbye!"); }}
编辑完成后,按“ESC”键,输入:wq!保存退出。
说明:请用户根据实际情况替换红字内容,修改
jdbc:postgresql://192.168.52.3:26000/postgres中的IP信息,以及连接数据库的用户及密码USER = "dbuser"、 PASS = "Gauss#3demo" 。
2、在安装Java的本机,对Java程序编译后执行。
先对Java程序进行编译(进入Java程序的目录)
再执行以下命令(Tips:注意“.:”的书写)。
3、执行结果
至此,在linux环境 下java访问openGauss数据库就算完成了。
五、经验小结(FAQ)1、数据库运行环境建议
1)支持的硬件平台
openGauss支持运行在ARM服务器和通用的x86服务器上:
支持ARM服务器和基于x86_64的通用PC服务器。
支持本地存储(SATA、SAS、SSD)。
支持千兆、万兆Ethernet网络。
2)支持的操作系统
ARM:openEuler 20.03LTS(推荐采用此操作系统)、麒麟V10、Asianux 7.5
X86:openEuler 20.03LTS、CentOS 7.6、Asianux 7.6
2、JDBC开发应用程序的流程
3、连接故障说明
1)gsql: could not connect to server: No route to host
此问题一般是指定了不可达的地址或者端口导致的。请检查-h参数与-p参数是否添加正确。
2)gsql: FATAL: Invalid username/password,login denied.
此问题一般是输入了错误的用户名和密码导致的,请联系数据库管理员,确认用户名和密码的正确性。
3)gsql: FATAL: Forbid remote connection with trust
姓名:
年龄:
电话: