搭建Yearning 基於Inception的開源SQL審核平台
環境centos7.2
一、Inception安裝
1、安裝相關依賴包
yum install bison ncurses-libs libncurses5-devel ncurses-devel wget git cmake openssl gcc-c++ gcc openssl-devel MySQL-python -y
注意:centos7 系統自帶的bison的版本過高,在後面測試的時候會報錯!
查看版本: bison -V
卸高版本的bison
rpm -qa|grep bison
rpm -e bison-3.0.4-1.el7.x86_64
編譯安裝bison-2.5.1
wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz
tar xvf bison-2.5.1.tar.gz
cd bison-2.5.1
./configure --prefix=/usr
make
make install
安裝完成後查看版本:bison -V
2、安裝inception
cd /opt/
git clone https://github.com/mysql-inception/inception
cd inception
sh inception_build.sh debug
debug就是編譯目錄,編譯後所有的生成文件都在這個目錄下面,包括可執行文件Inception。可執行文件在/opt/inception/debug/sql目錄下面:
cd /opt/inception/debug/sql
3、創建配置目錄,將可執行文件Inception拷貝到/opt/inception/bin目錄
[root@temi sql]# mkdir -p /data/inception
[root@temi sql]# mkdir -p /data/inception/bin
[root@temi sql]# mkdir -p /data/inception/temp
[root@temi sql]# cp /opt/inception/debug/sql/Inception /data/inception/bin/
4.配置inception參數,具體的參數介紹請移步
http://mysql-inception.github.io/inception-document/
[root@temi sql]# cat >/etc/inc.cnf
[inception]
general_log=1
general_log_file=/opt/inception/inception.log
port=6669
socket=/opt/inception/inc.socket
character-set-client-handshake=0
character-set-server=utf8
inception_remote_system_password=temi888
inception_remote_system_user=root
inception_remote_backup_port=3306
inception_remote_backup_host=127.0.0.1
inception_support_charset=utf8mb4
inception_enable_nullable=0
inception_check_primary_key=1
inception_check_column_comment=1
inception_check_table_comment=1
inception_osc_min_table_size=1
inception_osc_bin_dir=/opt/inception/temp
inception_osc_chunk_time=0.1
inception_ddl_support=1
inception_enable_blob_type=1
inception_check_column_default_value=1
5.後台啟動inception
[root@temi sql]# nohup /data/inception/bin/Inception --defaults-file=/etc/inc.cnf &
[root@temi sql]# ps -ef|grep Inception
6.登錄驗證
啟動資料庫,沒有的可以自行安裝。
7.安裝mysql5.7:
[root@temi ~]#wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
[root@temi ~]# yum localinstall mysql57-community-release-el7-8.noarch.rpm
[root@temi ~]# yum repolist enabled | grep "mysql.*-community.*"
[root@temi ~]# yum install mysql-community-server
8.啟動mysql服務
systemctl start mysqld
9.為了加強安全性,MySQL5.7為root用戶隨機生成了一個密碼,在error log中,關於error log的位置,如果安裝的是RPM包,則默認是/var/log/mysqld.log。
10.初次使用mysql5.7需要重置root密碼
首先,修改validate_password_policy參數的值,我的密碼太簡單所以需執行以下
mysql>set global validate_password_policy=0;
mysql>SET PASSWORD = PASSWORD("temi");
mysql>flush privileges;
mysql>exit;
11.登錄Inception
[root@temi ~]#mysql -uroot -h127.0.0.1 -P6669
二、web界面,安裝Yearning v1.2版本
下載,並ftp傳到伺服器/opt目錄下
鏈接:https://pan.baidu.com/s/1xEw73gh76HaC1EDyXy6kww 密碼:x4jm
1.安裝環境:
python3.6 + mysql5.7 +nginx
安裝python3.6
[root@temi ~]# wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
[root@temi ~]# tar xvf Python-3.6.3.tgz
[root@temi ~]# mkdir /usr/local/python3
[root@temi ~]# cd Python-3.6.3/
[root@temi Python-3.6.3]#./configure --prefix=/usr/local/python3 --with-ssl && make && make install
將/opt/python3/bin加入環境變數
[root@temi ~]#echo "export PATH=$PATH:/usr/local/python3/bin/" >> ~/.bashrc
[root@temi ~]#. ~/.bashrc
2.代替系統的默認的 python,即運行 python就是運行 python3,而且要是 yum可以正常使用,我們可以執行如下步驟:
[root@temi ~]#mv /usr/bin/python /usr/bin/python-old-backup
[root@temi ~]#ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
[root@temi ~]#ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
3.將相關yum配置文件開頭的
#!/usr/bin/python 修改為 #/usr/bin/python-old-backup
三個文件
/usr/bin/yum
/usr/libexec/urlgrabber-ext-down
/usr/bin/yum-config-manager
4.啟動mysql
[root@temi ~]#lsystemctl start mysqld
5.創建資料庫並授權
mysql>CREATE DATABASE IF NOT EXISTS Yearning default charset utf8 COLLATE utf8_general_ci;
mysql>grant all on *.* to "yearning"@"%" identified by "temi";
mysql>grant all on *.* to "root"@"%" identified by "temi";
mysql>flush privileges;
6.此時應該已上傳完Yearning
更改配置文件:
7.安裝相應python依賴庫
[root@temi src]# /usr/local/python3/bin/pip3 install -r requirements.txt
8.初始化資料庫
[root@temi src]# python3 manage.py makemigrations core && python3 manage.py migrate core
9.添加初始化用戶
10.初始化許可權
11.初始化動態配置信息
[root@temi src]#echo "from core.models import globalpermissions; globalpermissions.objects.get_or_create(authorization="global", inception={"host": "", "port": "", "user": "", "password": "", "back_host": "", "back_port": "", "back_user": "", "back_password": ""}, ldap={"type": "", "host": "", "sc": "", "domain": "", "user": "", "password": ""}, message={"webhook": "", "smtp_host": "", "smtp_port": "", "user": "", "password": "", "to_user": "", "mail": False, "ding": False}, other={"limit": "", "con_room": ["AWS", "Aliyun", "Own", "Other"], "foce": "", "multi": False, "query": False, "sensitive_list": [], "sensitive": ""})" | python3 manage.py shell
12.Nginx安裝
添加CentOS 7 Nginx yum資源庫,打開終端,使用以下命令:
[root@temi src]#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@temi src]#yum install -y nginx
13.啟動Nginx
systemctl start nginx.service
14.清空nginx網站存放目錄
[root@temi src]# rm /usr/share/nginx/html/*
15.拷貝Yearning目錄文件到nginx網站默認存放目錄
[root@temi src]#cp -rf /opt/Yearning/webpage/dist/* /usr/share/nginx/html/
16.替換pymysql連接文件
[root@temi src]#cp /opt/Yearning/install/connections.py /usr/local/python3/lib/python3.6/site-packages/pymysql/connections.py
[root@temi src]#cp /opt/Yearning/install/cursors.py /usr/local/python3/lib/python3.6/site-packages/pymysql/cursors.py
17.安裝npm
[root@temi src]#cd /opt/Yearning/webpage
[root@temi webpage]#yum install -y npm
18.安裝Vue最新穩定版本
[root@temi webpage]#npm install vue
19.最新穩定 CSP 兼容版本
[root@temi webpage]#npm install vue@csp
20.安裝命令行工具
[root@temi webpage]#npm install -g vue-cli
21.安裝依賴
[root@temi webpage]#npm install && npm run dev
22.啟動python server
[root@temi src]#nohup python3 /opt/Yearning/src/manage.py runserver 0.0.0.0:8000 &
三.訪問http://193.112.81.69
需要防火牆放通80,8000,3306埠
賬號密碼為二-9步驟的賬號密碼
TAG:智度9394 |