外部连接数据库实验
有时间就补图
1.Oracle软件->设置->网络->桥接网卡->ok->绿色箭头启动
2.点击putty,之后要用
3.Oracle跳出的黑色界面:
①输入 root->回车->输入密码openGauss@123注意密码不回显,要盲打,注意大小写和符号。
②输入 ifconfig,跳出一大堆,找到 inet后面的四个数字 如125.217.41.56,找到这串数字,输入到putty界面的长条中,第一次可能会出错,出现有红叉的一个提示框,就把putty的界面叉掉再来一遍(输入那一串数字),如果出现了一个黄色三角警告的提示框,点击ok就ok了
4.在putty界面输入root,回车后输入密码:openGauss@123,使用putty是因为方便复制粘贴(右键粘贴,在Oracle中不能)
5.参考使用实验三的那个文件
①输入cd /gaussdb/data/db1/ 回车
②输入vi pg_hba.conf 回车 跳出一大堆
③ 注意:i 进入编辑,esc键退出编辑,:wq 保存并退出(冒号也要打)
④ 点击i,参考附件1.1添加 host all all 0.0.0.0/0 md5 按esc退出编辑,输入:wq保存并退出
⑤输入vi postgresql.conf 回车,找到listen_address 值改为 ="*"
找到password_encryption_type 值改为=0,删掉 “#"
⑥systemctl stop firewalld 关闭防火墙
6.参考附件2
在数据库服务级,创建账户
切换操作系统用户为omm:#su - omm
重启数据库服务:$gs_om -t restart 可能需要等待一会儿
连接数据库:$gsql -d postgres -p 26000 -r
初始打开数据库需要修改数据库管理员omm的密码:
ALTER ROLE omm IDENTIFIED BY 'openGauss@1234' REPLACE 'openGauss@123';
创建新用户:
create user dbuser password 'Huawei_123';
创建数据库:
create database finance owner dbuser;
退出sql并以新建用户登录
\q
gsql -d finance -p 26000 -U dbuser -W Huawei_123 -r
创建模式schema
create schema dbuser authorization dbuser;
创建表
CREATE TABLE client
(
c_id INT PRIMARY KEY,
c_name VARCHAR(100) NOT NULL,
c_mail CHAR(30) UNIQUE,
c_id_card CHAR(20) UNIQUE NOT NULL,
c_phone CHAR(20) UNIQUE NOT NULL,
c_password CHAR(20) NOT NULL
);
插入数据
INSERT INTO client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) VALUES (1,'张一','[email protected]','340211199301010001','18815650001','gaussdb_001');
INSERT INTO client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) VALUES (2,'张二','[email protected]','340211199301010002','18815650002','gaussdb_002');
INSERT INTO client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) VALUES (3,'张三','[email protected]','340211199301010003','18815650003','gaussdb_003');
INSERT INTO client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) VALUES (4,'张四','[email protected]','340211199301010004','18815650004','gaussdb_004');
INSERT INTO client(c_id,c_name,c_mail,c_id_card,c_phone,c_password) VALUES (5,'张五','[email protected]','340211199301010005','18815650005','gaussdb_005');
7.打开eclipse(或其他编程工具)
①新建文件
②src处新建class,将代下面的代码复制粘贴到class,要改的是改成自己的ip地址,类名
import java.sql.*;
public class Rd {
static final String JDBC_DRIVER = "org.postgresql.Driver";
static final String DB_URL = "jdbc:postgresql://125.217.41.11:26000/finance?ApplicationName=app1";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "dbuser";
static final String PASS = "Huawei_123";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT c_id, c_name, c_mail FROM client";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int id = rs.getInt("c_id");
String name = rs.getString("c_name");
String mail = rs.getString("c_mail");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", name: " + name);
System.out.print(", mail: " + mail);
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!");
}
}
③开发平台需要知道厂商的那个包在哪,project->properties->java build path ->libraries->add external JARs...->postgresql那个文件
④运行 会输出数据库的数据