参考文章保命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;
}
}