安装依赖
安装JDK
dnf install -y java-17-openjdk-headless安装工具(转换pdf文件)
dnf install -y ghostscript安装ODBC
dnf install -y unixODBC安装redis
dnf install -y redis
#修改密码
vi /etc/redis.conf
查找requirepass,修改为(同Application-prod.yml配置一致
requirepass @Unifound
# 确保目录存在 + 归属 redis
sudo mkdir -p /var/log/redis
sudo chown -R redis:redis /var/log/redis
sudo chmod 755 /var/log/redis数据库安装
安装GREATSQL
https://greatsql.cn/docs/8.0.32-27/4-install-guide/3-3-openeuler-install.html
依赖
dnf install -y libaio numactl-libs openssl ncurses-libs安装
- 下载
curl -O https://product.greatdb.com/GreatSQL-8.0.32-27/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64-minimal.tar.xz - 解压到/usr/local
cd /usr/local
tar xzf path/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64-minimal.tar.xz
mv GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64-minimal GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64 - 添加到环境变量
~/.bashrc 会在docker exec -it *** bash中加载
echo ‘export PATH=/usr/local/GreatSQL-8.0.32-27-Linux-glibc2.28-x86_64/bin:$PATH’ >> ~/.bashrc
source ~/.bashrc
启动准备
groupadd mysql
useradd -g mysql -M mysql -s /sbin/nologin
mkdir -p /data/GreatSQL
chown -R mysql:mysql /data/GreatSQL
chmod -R 700 /data/GreatSQL
# 3. 初始化(只做一次)
mysqld --initialize-insecure --user=mysql --datadir=/data/GreatSQL
# 4. 前台起
mysqld --user=mysql --datadir=/data/GreatSQL --socket=/data/GreatSQL/mysql.sock
#客户端
mysql -S /data/GreatSQL/mysql.sock -u root
已授权情况下
mysql -h 127.0.0.1 -P 3306 -u root -p授权处理
-- 如果已经有 root@'%' 但没密码 / 密码不对,先删了重来更干净
DROP USER IF EXISTS 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY 'Unifound@808';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 创建CCMAdmin,密码lchz761UF
CREATE USER 'CCMAdmin'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON OPMDB.* TO 'CCMAdmin'@'%' WITH GRANT OPTION;
-- 创建CACADMIN,密码lchz761UF
CREATE USER 'CACADMIN'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON UniCAC.* TO 'CACADMIN'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;ODBC
使用MySQL的配置,驱动也用mysql的
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib/libmyodbc5.so
Setup=/usr/lib/libodbcmyS.so
Driver64=/usr/lib64/libmyodbc8w.so
Setup64=/usr/lib64/libodbcmyS.so
FileUsage=1
yum install -y mysql-connector-odbc
下载官方(Oracle)驱动,mysql-connector-odbc-8.0.29-1.el8.aarch64.rpm(可以从)
https://mirrors.aliyun.com/mysql/Connector-ODBC/8.0/下载,官方只能下载最新的)
dnf localinstall mysql-connector-odbc-8.0.29-1.el8.aarch64.rpm
安装后对应库文件为/usr/lib64/libmyodbc8w.so, 在/etc/odbcinst.ini中吧libmyodb5.so改成libmyodbc8w.so
x86的系统安装mysql-connector-odbc-8.0.29-1.el8.x86_64.rpmDSN
[OPMDB_DSN]
Description=MYSQL ODBC DSN
Driver=MySQL
TCP_Port=3306
[UNICAC_DSN]
Description=MYSQL ODBC DSN
Driver=MySQL
TCP_Port=3306安装OceanBase
下载安装
# 1. 下载并安装 all-in-one 包
bash -c "$(curl -s https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh)"
# 2. 加载环境变量
source ~/.oceanbase-all-in-one/bin/env.sh
# 3. 校验
which obd
which obclient启动
最小启动
obd demo级联启动
odb cluster …密码修改
#缺省密码(随机密码)通过下面命令可以看到对应的密码
obd cluster display demo | grep obclient
#登录
obclient -h127.0.0.1 -P2881 -uroot@sys -p’<当前密码>’ -Doceanbase -A
#修改密码
ALTER USER root IDENTIFIED BY ‘Unifound@808’;启动失败
dnf install -y findutils iputils
配置ODBC
https://www.oceanbase.com/docs/common-oceanbase-connector-odbc-cn-10000000001283682
mysql兼容模式,可以参考上面的GREATSQL
下载安装本身的odbc,在下载中心的OB Cloud有下载链接(需要登录)
#按如下顺序安装
sudo rpm -ivh libobclient-.rpm
sudo rpm -ivh ob-connector-odbc-.rpm
sudo rpm -ivh ob-unixodbc-*.rpm[Oceanbase]
Description = ODBC for Oceanbase
Driver = /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so
授权处理
-- 如果已经有 root@'%' 但没密码 / 密码不对,先删了重来更干净
-- 用root@sys进行登录,
DROP USER IF EXISTS 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY 'Unifound@808';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 创建CCMAdmin,密码lchz761UF
CREATE USER 'CCMAdmin'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON OPMDB.* TO 'CCMAdmin'@'%' WITH GRANT OPTION;
-- 创建CACADMIN,密码lchz761UF
CREATE USER 'CACADMIN'@'%' IDENTIFIED BY 'lchz761UF';
GRANT ALL PRIVILEGES ON UniCAC.* TO 'CACADMIN'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;配置DSN
[OPMDB_DSN]
Description=Oceanbase ODBC DSN
Driver=Oceanbase
TCP_Port=2883
[UNICAC_DSN]
Description=Oceanbase ODBC DSN
Driver=Oceanbase
TCP_Port=2883创建数据库
--运行客户端,或Navicat
CREATE DATABASE OPMDB;
SOURCE opmdb_mysql.sql
CREATE DATABASE OPMDB;
SOURCE unicac_mysql.sqlrpm安装
arch 表示x86_64/aarch64
安装unicac
dnf localinstall unicac_1.arch.rpm#自动安装依赖
libtool-ltdl-2.4.7-3.oe2403.x86_64.rpm
unixODBC-2.3.9-4.oe2403.x86_64.rpm
compat-openssl11-libs-1.1.1m-18.oe2403.x86_64.rpm安装opmserver
dnf localinstall opmserver-1.0-1.arch.rpm安装cloudprint
dnf localinstall cloudprint-1.0-1.arch.rpm卸载
dnf remove 模块名(unicac,opmserver,cloudprint)deb安装
arch 表示amd64/arm64
安装unicac
dpkg -i unicac_1.0-1_amd64.deb安装opmserver
dpkg -i opmserver_1.0-1_amd64.deb安装cloudprint
dpkg -i cloudprint_1.0-1_amd64.deb卸载
dpkg -p 模块名(unicac,opmserver,cloudprint)
JAR包及网页部署
云打印
- printer-master-1.0.jar 部署到/opt/unifound/cloudprint/bin/
- web.yyyymmdd.rar(H5网页) 部署到/opt/unifound/cloudprint/bin/static
unrar x path/web.yyyymmdd.rar mv web newPrintH5 - dist.yyyymmdd.rar(PC端网页)部署到/opt/unifound/cloudprint/bin/static/static
unrar x path/dist.yyyymmdd.rar mv dist newCprintPc后台管理
- printer-manager-1.0.jar 部署到/opt/unifound/cloudmanager/bin/
- 管理端网页部署到/opt/unifound/cloudmanager/
unrar x path/dist.yyyymmdd.rar
配置文件及日志
配置文件
OPMServer
/etc/unifound/opmserver/uniopmserver.conf
#修改DBPORT DM为5238,CREATSQL为3306,Oceanbase为2883,SqlServer为1433
#修改DBDRIVER DM为dm, CREATSQL/OCeanbase为mysqlUniCAC
/etc/unifound/cacserver/unicacserver.conf
#修改DBPORT DM为5238,CREATSQL为3306,Oceanbase为2883,SqlServer为1433
#修改DBDRIVER DM为dm, CREATSQL/OCeanbase为mysql云打印
/opt/unifound/cloudprint/bin
#修改spring.datasource.dynamic.datasource.master
###CREATSQL/Oceanbase mysql兼容
url: jdbc:mysql://127.0.0.1:3306/OPMDB?allowMultiQueries=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
###DM
url: jdbc:dm://127.0.0.1:5236
driver-class-name: dm.jdbc.driver.DmDriver#修改unifound.domain 外部可以访问的地址(ngnix代理的地址)
url: http://127.0.0.1:8890
#####################
#授权模式(默认不配置)
#auth: 默认授权模式(绑定支付宝或微信)
#password: 账号密码(不绑定模式)(待实现)
#superstar: 超星授权模式(待实现)
#uni_auth: 统一授权模式(不绑定模式)(待实现)
#capital_library: 首图授权模式
#capital_library_open: 首图开放平台授权模式
#####################^M
auth-mode: capital_library^M
- 云打印后台管理
/opt/unifound/cloudmanager/bin
日志文件
- OPMServer/UniCAC
/var/log/unifound - 云打印及后台管理
/opt/unifound/cloudprint/bin/logs
/opt/unifound/cloudpmanager/bin/logs
服务
服务名称
- OPMServer
uniopmserver.service - UniCAC
unicacserver.service - 云打印
unicloudprint.service - 云打印后台
unicloudmanager.service
服务命令
- 启动
systemctl start 服务名 - 停止
systemctl stop 服务名 - 重启
systemctl restart 服务名 - 修改服务后重新加载
systemctl daemon-reload
代理配置(Nginx,其他可以参考)
# 管理端
server {
listen 127.0.0.1:8893;
server_name _;
# 管理端接口
location ^~ /api/ {
client_body_timeout 300s;
proxy_pass http://127.0.0.1:8891/;
proxy_redirect default;
}
# 管理端网页
location / {
root /opt/unifound/cloudmanager/web;
index admin.html admin.htm;
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
# 首图小程序入口兼容
server {
listen 127.0.0.1:8894;
server_name _;
location / {
root /opt/unifound/paywallet;
index bjlibpt.html;
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /bjlibpt.html last;
}
}
# 主入口
server {
listen 127.0.0.1:8080;
server_name _;
client_max_body_size 100M;
proxy_redirect http://127.0.0.1/ http://$host:$server_port/;
proxy_redirect http://localhost/ http://$host:$server_port/;
# 云打印
location / {
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://127.0.0.1:8890;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
}
# 管理端
location /admin/ {
allow 10.20.100.150;
deny all;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://127.0.0.1:8893/;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
}
location /actuator/ {
allow 10.20.100.150;
deny all;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://127.0.0.1:8890/;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
}
#
location /client/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://127.0.0.1:8894/;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
}
# 首图小程序入口兼容
location /paywallet/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering on;
proxy_pass http://127.0.0.1:8894/;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}