安装Python和virtualenv
从1.9.0版本开始,将不再支持python3.7及以下版本,手动安装也将使用3.9版本作为样例,移除yum安装方式
# 安装依赖
yum install libffi-devel wget gcc make zlib-devel openssl openssl-devel ncurses-devel openldap-devel gettext bzip2-devel xz-devel
wget "https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz"
tar -xvJf Python-3.9.10.tar.xz
# 编译
cd Python-3.9.10
./configure prefix=/data/python3
make && make install
ln -fs /data/python3/bin/python3 /usr/bin/python3
ln -fs /data/python3/bin/pip3 /usr/bin/pip3
# virtualenv
pip3 install virtualenv -i https://mirrors.ustc.edu.cn/pypi/web/simple/
ln -fs /data/python3/bin/virtualenv /usr/bin/virtualenv
在执行的过程中不确定是否执行成功的时候echo $? 查看一下回显
![](https://i-blog.csdnimg.cn/blog_migrate/95c26bcc8e43912d46046fda4bdedd2f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9b015893aea38ff88a3623dd0a2d1e57.png)
# 编译安装python的使用
virtualenv venv4archery --python=python3
# 切换python运行环境到虚拟环境
source venv4archery/bin/activate
# CentOS 6 使用此命令
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
# CentOS 7 使用此命令
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
# 卸载冲突驱动
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
# 安装驱动
sudo ACCEPT_EULA=Y yum install msodbcsql17 sudo ACCEPT_EULA=Y yum install mssql-tools
# 更新环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
# 安装ODBC依赖
sudo yum install unixODBC-devel
wget "https://github.com/hhyo/archery/archive/v1.8.5.tar.gz"
tar -xzvf v1.8.5.tar.gz
# 安装系统依赖
yum -y install gcc gcc-c++ python-devel mysql-devel openldap-devel unixODBC-devel gettext
# 安装依赖库
cd Archery-1.8.5/
pip3 install -r requirements.txt -i https://mirrors.ustc.edu.cn/pypi/web/simple/
![](https://i-blog.csdnimg.cn/blog_migrate/2c980f0737eac6f1a8a334bb14397cdb.png)
安装Inception(MySQL审核、查询校验和数据脱敏)
二进制部署goInception
tar zxvf goInception-linux-v1.3.0-42-g169e116.tar.gz
注意config/config.toml.default 配置中从库必须要配置 不然goInception不生效
![](https://i-blog.csdnimg.cn/blog_migrate/7d7bc550ec98de0a550e3d767bcd8fd9.png)
./goInception -config=config/config.toml.default & 放到后台启动
备MySQL、Redis实例
MySQL推荐版本>=5.7
Redis提供任务队列和缓存
修改配置
vi archery/settings.py
![](https://i-blog.csdnimg.cn/blog_migrate/b85b39429892b4a17d507ce00f66304a.png)
配置mysql实例
注意使用8.x数据库需要更换用户密码策略
use mysql
select host ,user ,plugin from user; 查看一下用户的密码策略
换成mysql_native_password 不然连接会报错
alter user 'slave'@'%' identified with mysql_native_password by 'Zxcvbnm@2023';
![](https://i-blog.csdnimg.cn/blog_migrate/041be7b24eddd9fa77d6bd288fb8c66f.png)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'archery', # 数据库名称
'USER': 'slave', # 数据库用户
'PASSWORD': 'Zxcvbnm@2023', # 数据库密码
'HOST': '192.168.197.132', # 数据库地址
'PORT': '3306', # 数据库端口
'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", # SQL_MODE,为了兼容select * group by,可以按需调整
![](https://i-blog.csdnimg.cn/blog_migrate/da4a0eaa97efd531bc7aac42ab1ef901.png)
Redis实例配置
![](https://i-blog.csdnimg.cn/blog_migrate/b731bf4cd512a1434fdc28705a7d49fd.png)
启动准备
# 数据库初始化
cd Archery-1.8.5/
python3 manage.py makemigrations sql
![](https://i-blog.csdnimg.cn/blog_migrate/996eadad30dc705dfc15473ab2ef1361.png)
python3 manage.py migrate
![](https://i-blog.csdnimg.cn/blog_migrate/3de2e91b114e02736b0ab68bf3334751.png)
# 数据初始化
使用mysql8.x 在执行时报错 下载mysql8.x对应的驱动包
https://rhel.pkgs.org/7/mysql-8.0-x86_64/ 访问下载对应版本的包
![](https://i-blog.csdnimg.cn/blog_migrate/2283b3d7a3b40b35f985d58395795242.png)
访问网站找不到下载路径的话 可以修改我的下载连接直接改成对应版本即可比如我要下载8.0.28版本
强制安装不下载依赖
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm --force --nodeps
然后在执行就不会报错了
python3 manage.py dbshell<sql/fixtures/auth_group.sql
![](https://i-blog.csdnimg.cn/blog_migrate/fe2b4d6caf731d6dae9ac4aafeb8b8bb.png)
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
# 创建管理用户 自定义即可
python3 manage.py createsuperuser
![](https://i-blog.csdnimg.cn/blog_migrate/13754098ffb276c81f6baef5ae15b93f.png)
启动
source /data/Python-3.9.10/venv4archery/bin/activate
#启动Django-Q,需保持后台运行
python3 manage.py qcluster &
#启动服务
nohup python3 manage.py runserver 0.0.0.0:9123 --insecure &
如果要关闭的话 jobs 查看后台运行的进程 kill -9 %2 杀掉进程即可
![](https://i-blog.csdnimg.cn/blog_migrate/630be452a6fb49d145ac416243d2bd03.png)
部署完成访问web 192.168.197.138:9123 输入刚刚设置的用户名密码
![](https://i-blog.csdnimg.cn/blog_migrate/702517160a776b7d9c865955c45cae29.png)