Archery 是一个开源的SQL 审核查询平台,旨在提升 DBA 的工作效率,支持多种数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能。类似于阿里云DMS。
1、下载 Archery
本文档使用的版本是 Release v1.7.13。
下载地址:https://github.com/hhyo/archery/releases/
2、将下载好的 zip 压缩包上传至服务器某一目录下,并解压
上传文件:
命令格式:scp -r -P <服务器端口> <Archary zip 本地路径> <服务器用户名>@<服务器 IP>:<上传至服务器的路径>
命令示例:scp -r -P 22 /Users/sky/Downloads/Archery-1.7.13.zip Frozen@12.123.12.123:/home/Frozen/archery
解压:
unzip Archery-1.7.13.zip
3、进入解压后的文件夹,并进入 /src/docker-compose 文件夹
4、修改 docker-compose.yml 文件
vim docker-compose.yml
如果你的服务器上已存在 3306 端口的 MySQL 被其他项目使用,则可以将此 MySQL 的端口进行修改。
5、修改 my.cnf 文件
vim mysql/my.cnf
- 将 [mysqld_safe] 里的 socket 改为 /var/lib/mysql/mysqld.sock。
- 将 [mysqld] 里的 pid-file 改为 /var/lib/mysql/mysqld.pid。
- 将 [mysqld] 里的 socket 改为 /var/lib/mysql/mysqld.sock。
- 将 [mysqld] 里的 port 改为 docker-compose.yml 文件里 MySQL 的端口。
6、修改 settings.py 文件 (共 2 个)。
vim archery/settings.py
vim ../../archery/settings.py
- 将 ‘PASSWORD’ 改为 docker-compose.yml 文件里 MySQL 的密码。
- 将 ‘HOST’ 改为服务器内网 IP。
- 将 ‘POST’ 改为 docker-compose.yml 文件里 MySQL 的端口。
7、启动 Archary 相关容器
docker-compose -f docker-compose.yml up -d
如果遇到 docker-compose:未找到命令 则按顺序执行以下命令即可解决 (需要 root 权限):
cd /usr/local/bin
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose version
8、观察 Archary 相关容器是否都正常启动 (共 5 个)
docker ps
9、初始化 Archary 数据
# 进入 archary 容器。
docker exec -ti archery /bin/bash
# 表结构初始化。
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
# 数据初始化。
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
# 创建管理员用户。
python3 manage.py createsuperuser
# 从 archary 容器退出,重启 archary 容器。
exit
docker restart archery
10、访问 Archary
http://127.0.0.1:9123/
(将 127.0.0.1 替换成服务器外网 IP,9123 为 docker-compose.yml 文件里配置的端口)
至此,Archary 部署完毕,使用前请仔细阅读《Arcahry 使用文档》。
其他
# 查看 docker 容器日志和问题排查。
docker logs archery -f --tail=10
# 日志所在目录。
logs/archery.log
# 删除 Archary 相关容器。
docker rm -f mysql
docker rm -f archery
docker rm -f goinception
docker rm -f inception
docker rm -f redis