官方文檔-源碼安裝
操作系統: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
這種格式
結合下面的這個插件安裝方式,即使遠程連接也能代碼補全
等待相關工具下完后就行了
懸停能出現文檔了