使用Docker安装OpenGuass在线安装

参考文章保命https://blog.csdn.net/youngyulang/article/details/115562425

华为云安装OpenGuass

1、安装软件

首先下载依赖包

yum install gcc zlib* openssl* -y 

下载python3

wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz

解压压缩包

tar -zxvf Python-3.6.7.tgz

安装python3(这一步出了问题,原因是原本就有文件,当执行In操作时显示已经存在,但使用Python -V验证时发现出现错误,解决方案:删除/usr/bin/python3、/usr/bin/pip3、/usr/lib64/,然后重新执行一遍,问题解决)

cd Python-3.6.7
./configure --prefix=/usr/python3.6.7 --enable-optimizations --enable-shared
make
make install
ln -s /usr/python3.6.7/bin/python3.6 /usr/bin/python3
ln -s /usr/python3.6.7/bin/pip3 /usr/bin/pip3
ln -s /usr/python3.6.7/lib/libpython3.6m.so.1.0 /usr/lib64/
export LD_LIBRARY_PATH=/usr/python3.6.7/lib:$LD_LIBRARY_PATH

执行 python3 -V 查看是否安装python3成功

查看linux 内核
uname -r
确保内核在3.10以上
安装docker

yum install docker

检测docker版本

docker -v

看是否得到如下结果(版本号可能不同)
Docker version 1.13.1, build cccb291/1.13.1

启动docker

systemctl start docker

设置开机启动docker

systemctl enable docker

拉取opengauss镜像

docker pull aff123/opengauss:latest

注意:默认账号是gaussdb
输入 docker ps -a查看是否打开成功

docker ps -a

在这里插入图片描述
执行docker exec -it opengauss1 sh 连结数据库

docker exec -it -u root opengauss1 sh

执行 su - omm进入omm用户

su - omm

执行gsql(这一步没成功,没有gsql,搞了几个小时也没解决,但不影响远程连接使用)

gsql

2、安装数据可视化软件连接Datagrip

打开官网进行安装:
https://www.jetbrains.com/datagrip/
开放华为云的15432端口
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
开放端口15432成功
在这里插入图片描述

连接数据库
在这里插入图片描述
首先先创建一个工程
在这里插入图片描述
在这里插入图片描述
账号 :gaussdb
密码:Secretpassword@123 (在docker创建实例时,设置的密码)

填写好点击Test Connection (如果是第一次安装的datagrip ,会自动下载驱动)
在这里插入图片描述
简单使用
在这里插入图片描述

可以在console执行sql语句
在这里插入图片描述
Datagrip支持很多数据库,需要使用其他功能可以好好学习下

3、使用OpenGuass的JDBC对数据库进行操作

下载OpenGuass的对应JDBC
https://opengauss.org/zh/download.html
在这里插入图片描述
解压
在这里插入图片描述
打开IDEA新建项目
引用postgresql.jar
在这里插入图片描述
在这里插入图片描述
BaseDao.class(需要修改uri变量的IP为自己的IP)

package dao;

import java.sql.*;

public class BaseDao {
    private static String url = "jdbc:postgresql://IP:15432/db"; // 连接字符串
    private static String dbUserName = "gaussdb";                  // 用户名
    private static String dbUserPwd = "Secretpassword@123";                 // 密码
    protected static Connection conn = null;

    public static Connection getConnection() {
        if (conn != null)
            return conn;

        try {
            // 加载驱动类
            Class.forName("org.postgresql.Driver");
            // 获取数据库连接
            conn = DriverManager.getConnection(url, dbUserName, dbUserPwd);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public void closeConnection() {
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void openTransaction() {
        if (conn != null) {
            try {
                // 关闭数据库操作的自动commit功能
                conn.setAutoCommit(false);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public void commit() {
        if (conn != null) {
            try {
                conn.commit();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

    }

    public void rollback() {
        if (conn != null) {
            try {
                conn.rollback();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    public static void main(String [] args) {
        Connection connection=new BaseDao().getConnection();
        Statement stmt = null;
        // 执行查询
        System.out.println(" 实例化Statement对象...");
        try {
            stmt = connection.createStatement();
            String sql;
            sql = "SELECT * FROM consumer";
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                // 通过字段检索
                String id  = rs.getString("cs_name");

                // 输出数据
                System.out.print("ID: " + id);
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            connection.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(connection!=null) connection.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

一个简单的例子,不能直接运行,可以参考下怎么使用

package api;

import dao.FileDao;
import dao.UserDao;
import entity.Consumer;
import util.DateUtil;
import util.StringUtil;

public class GuassAPI {
    /***
     * 注册
     * @param name
     * @param phone
     * @param password1
     * @param password2
     * @return
     */
    public static String register(String name,String phone,String password1,String password2){
        String result=StringUtil.checkRegisterFormat(name,phone,password1,password2);
        if(result==null||result.length()<1){
            Consumer consumer=new Consumer(name,phone,password1, DateUtil.getDate());
            if(UserDao.createUser(consumer)==1){
                result="注册成功,请前往登录";
                HdfsApi.createList(phone);
            }else{
                result="注册失败,该手机号已被注册";
            }
        }
        return result;
    }

    /***
     * 登录
     * @param phone
     * @param password
     * @return
     */
    public static String login(String phone,String password){
        String result=StringUtil.checkLoginFormat(phone,password);
        if(result==null||result.length()<1){
            if(UserDao.findUser(phone,password)){
                result="登录成功";
            }else{
                result="登录失败,请输入正确的账号和密码!!!";
            }
        }
        return result;
    }

    /***
     * 忘记密码
     * @param phone
     * @return
     */
    public static String findbackPassword(String phone){
        boolean flag=StringUtil.isPhone(phone);
        String result=null;
        if(flag){
            result=UserDao.findbackPassword(phone);
        }else{
            result="手机号格式错误,请输入正确的手机号!!!";
        }
        return result;
    }

    public static String createList(String phone,String path,String name){
        boolean flag=StringUtil.isPhone(phone);
        String result=null;
        if(flag){
            result=HdfsApi.createList(phone+"/"+path);
            if(result.equals("目录:"+phone+"/"+path+"创建成功")){
                result="目录:"+name+"创建成功";
                FileDao.createList(phone,path,name);
            }
        }else{
            result="手机号格式错误,请输入正确的手机号!!!";
        }
        return result;
    }

    public static String renameForFile(String phone,String oldNamePath,String newNamePath,String oldName,String newName){
        boolean flag=StringUtil.isPhone(phone);
        String result=null;
        if(flag){
            result=HdfsApi.renameForFile(phone+"/"+oldName,phone+"/"+newName);
            if(result.equals("重命名成功")){
                FileDao.renameList(phone,oldName,newName);
            }
        }else{
            result="手机号格式错误,请输入正确的手机号!!!";
        }
        return result;
    }

    public static String renameForList(String phone,String oldNamePath,String newNamePath,String oldName,String newName){
        boolean flag=StringUtil.isPhone(phone);
        String result=null;
        if(flag){
            result=HdfsApi.renameForFile(phone+"/"+oldName,phone+"/"+newName);
            if(result.equals("重命名成功")){
                FileDao.renameList(phone,oldName,newName);
            }
        }else{
            result="手机号格式错误,请输入正确的手机号!!!";
        }
        return result;
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值