官方文档-源码安装
操作系统:centos:7.9,everything (DVD版应该也可以) (在ubuntu22.04装了两天之后乖乖开了一个新Centos7虚拟机)
镜像:清华大学开源软件镜像站 centos/7.9.2009
安装git
sudo yum update -y
sudo yum install -y git
git --version
安装docker
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-brokensudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-cesudo mkdir -p /etc/docker
# 各大镜像源停服后,当前还能用的一些镜像源
sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://hub.uuuadc.top","https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu","https://docker.ckyl.me","https://docker.awsl9527.cn"]
}
EOF# 启动
sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker# 修改完daemon.json后使用下面两个
sudo systemctl daemon-reload
sudo systemctl restart docker# 测试是否成功
docker -v
安装和编译sqle的前后端三个项目
ROOT=$PWD
# 不能直接在仓库下zip,会缺少.git文件夹,这是必需的
git clone https://github.com/actiontech/sqle.git
git clone https://github.com/actiontech/dms.git
git clone https://github.com/actiontech/dms-ui.git# 编译ui界面
docker run --rm -v $ROOT/dms-ui:/app -w /app gplane/pnpm:8.3.1 sh -c "git config --global --add safe.directory /app && pnpm config set registry https://registry.npm.taobao.org && pnpm install --no-frozen-lockfile && pnpm build"
rm -rf $ROOT/sqle/static && cp -r $ROOT/dms-ui/packages/base/dist $ROOT/sqle/static
# 编译两个后端
cd $PWD/dms
make docker_install
cp -r $PWD/dms/bin $PWD/sqle/bin
cd $PWD/sqle
# 必报错,需要自己打包一个有较新版rpmbuild的镜像
# 解决方案参考下面那个链接
make docker_rpm_with_dms
SQLE源码安装报错:unable to find image ‘rpmbuild/centos7:latest‘ locally
打包
sqle-ce*.rpm
在sqle
文件夹内
RPM=$(find . -type f -name "sqle-ce*.rpm")
rpm -ivh $RPM --prefix=/opt/sqle
启动sqle服务前先部署Mysql
docker run -p 3306:3306 --name mysql --restart=always \
-e MYSQL\_ROOT\_PASSWORD=root \
-d mysql# 然后在db中执行下面两行
# CREATE DATABASE IF NOT EXISTS sqle default character set utf8mb4 collate utf8mb4_unicode_ci;
# CREATE DATABASE IF NOT EXISTS dms default character set utf8mb4 collate utf8mb4_unicode_ci;
修改config.yaml
修改opt/sqle/etc/config.yaml
,主要是修改访问sqle
和dms
两个数据库的账号密码。注意数据库IP不要用localhost,而要用192那种
也可以修改sqle/build/sqled_with_dms.spec
和dms/config.yaml
,他们最终拼接为config.yaml
启动
cd /opt/sqle
chmod +x scripts/init_start.sh
./scripts/init_start.sh
后续修改源码之后重新部署
rpm -e sqle*
systemctl stop dms
systemctl stop sqled
rm -rf /opt/sqleROOT=$PWDrm -rf $PWD/sqle/static && cp -r $PWD/dms-ui/packages/base/dist $PWD/sqle/static
cp -r $PWD/dms/bin $PWD/sqle/bin
cd $PWD/sqle
make docker_rpm_with_dmsRPM=$(find . -type f -name "sqle-ce*.rpm")
rpm -ivh $RPM --prefix=/opt/sqlesh /opt/sqle/scripts/init_start.sh
修改rule
在每次启动时都会同步sqle/sqle/driver/mysql/rule/rule_list.go
和数据库rules
表
可以查看sqle/sqle/model/utils.go
的CreateRulesIfNotExist
二次开发需要
安装golang
mkdir ~/env
cd ~/env
# go.mod中显示go1.19
wget https://golang.org/dl/go1.19.13.linux-amd64.tar.gz
tar -zxvf go1.19.13.linux-amd64.tar.gzvim ~/.bashrc# 即刚刚解压的压缩包的文件夹
export GOROOT=~/env/go
# 你自己指定一个存第三方库的文件夹
export GOPATH=~/env/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/binsource ~/.bashrc
设置mod模式和下载第三方库的代理
go env -w GO111MODULE=on
go env -w GOPROXY="https://goproxy.cn,direct"
测试
go version
go env
yum安装VSCode(不要试这个)
这个方法来自官方:RHEL, Fedora, and CentOS based distributions
会报下面的错,解决方案是更新GLIBC,会影响系统的稳定性
错误:软件包:code-1.90.2-1718751675.el8.x86_64 (code)需要:libc.so.6(GLIBC_2.28)(64bit)
sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'yum check-updatesudo yum install code
建议RemoteSSH远程连接服务器,并进行开发
我是在win11连接Centos7虚拟机
连接url为ssh root@192.168.88.138
这种格式
结合下面的这个插件安装方式,即使远程连接也能代码补全
等待相关工具下完后就行了
悬停能出现文档了