mysql稽核平臺yearning及inception安裝

yleizzz發表於2019-05-24

#粗糙的文件

#安裝目錄在/usr/local下面

mysql稽核平臺yearning及inception安裝


#yearning安裝包 因為太大 附件無法存放 所以我放在自己的126郵箱了




nginx安裝

yum install nginx -y



inception安裝

yum -y install cmake libncurses5-dev libssl-dev g++ bison gcc gcc-c++ openssl-devel ncurses-devel mysql MySQL-python

wget http://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz

tar -zxvf bison-2.5.1.tar.gz

cd bison-2.5.1

./configure

make

make install


cd /usr/local/

wget https://github.com/myide/inception/archive/master.zip

unzip master.zip

cd inception-master/

sh inception_build.sh builddir linux


啟動服務

nohup /usr/local/inception-master/builddir/mysql/bin/Inception --defaults-file=/etc/inc.cnf &


登入inception

mysql -uroot -h127.0.0.1 -P6669


測試inception是否安裝成功

 inception get variables;

 

 

-----------------------

安裝python 3.6


wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

tar -xvf Python-3.6.4.tar.xz

mkdir -p /usr/local/python/3.6.4/lib

cd Python-3.6.4

./configure --enable-shared --prefix=/usr/local/python/3.6.4 LDFLAGS="-Wl,-rpath /usr/local/python/3.6.4/lib"

make

make install


cp /usr/bin/python /usr/bin/python2.6.6

ln -fs /usr/local/python/3.6.4/bin/python3.6 /usr/bin/python

ln -fs /usr/local/python/3.6.4/bin/pip3 /usr/bin/pip


vi /usr/bin/yum

將頭部 #!/usr/bin/python 修改為 #!/usr/bin/python2.6.6



-----------------------


yearning安裝


進入mysql 執行建庫語句  建立庫Yearning

create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


安裝此版本壓縮包

Yearning-1.1.2-release.tar.gz(暫時存放在152環境/usr/local/下面)

#yearning安裝包 因為太大 附件無法存放 所以我放在自己的126郵箱了

不要用最新的版本 如下命令下載的是最新的壓縮包(需要docker安裝不適用)

git clone https://github.com/cookieY/Yearning.git


cd Yearning/src

pip install -r requirements.txt

python manage.py makemigrations

python manage.py migrate


新增初始化使用者

echo "from core.models import Account;Account.objects.create_user(username='admin', password='Yearning_admin', group='admin',is_staff=1)" | python manage.py shell #新增初始化使用者


echo "from core.models import grained;grained.objects.get_or_create(username='admin', permissions={'person': [], 'ddl': '1', 'ddlcon': [], 'dml': '1', 'dmlcon': [], 'dic': '1', 'diccon': [], 'dicedit': '0', 'user': '1', 'base': '1', 'dicexport': '0', 'query': '1', 'querycon': []})" | python manage.py shell #初始化許可權

-----下面這個有可能 執行不了。。。可以忽略 沒關係

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': ''})" | python manage.py shell #初始化動態配置資訊




cd Yearning/webpage/dist

cp -rf * /usr/share/nginx/html/

service nginx restart


cd Yearning/src

python manage.py runserver 0.0.0.0:8000



-------------------

下面是有可能出現的錯誤  


有可能會出現如下錯誤

網路連線https://blog.csdn.net/zoulonglong/article/details/79552813

python3.6 錯誤: ModuleNotFoundError:No module named "Crypto"

原因及處理: 

在使用python是經常會用到import一個第三方庫,但是有時候會提示某個模組不存在,如Crypto 

其實是因為Python3裡面這個模組的名字變了,


pip install pycrypto試試

安裝成功後,如果還是提示沒有該模組,那就python3的安裝目錄Lib—-site-package中檢視是否有Crypto資料夾,這時你應該看到有crypto資料夾,將其重新命名為Crypto即可

如果又出現另一個提示說沒有Crypto.Cipher,“ModuleNotFoundError:No module named ‘Crypto.Cipher’”,那就去Crypto資料夾下看,是否存在Cipher資料夾,這時你會發現,咦,不存在,看第4步

這時你需要解除安裝pycrypto,pip uninstall pycrypto,然後安裝pycryptodome,pip install pycryptodome,即可


有可能出現如下錯誤

網路連線https://blog.csdn.net/dearmark/article/details/78208051

ValueError: invalid literal for int() with base 10: 'Inception2'

原因如下

由於Inception 並不原生支援pymysql,所以需更改pymysql相關原始碼 注: 在install 資料夾下已經修改的connections.py 和 cursors.py 直接替換即可

connections.py 

cursors.py

查詢pymysql原始碼修改connections.py檔案


找到1107行


    def _request_authentication(self):

        # https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse

        if int(self.server_version.split('.', 1)[0]) >= 5:

            self.client_flag |= CLIENT.MULTI_RESULTS


修改為


    def _request_authentication(self):

        # https://dev.mysql.com/doc/internals/en/connection-phase-packets.html#packet-Protocol::HandshakeResponse

        try:

            if int(self.server_version.split('.', 1)[0]) >= 5:

                self.client_flag |= CLIENT.MULTI_RESULTS

        except:

            if self.server_version.split('.', 1)[0] == 'Inception2':

                self.client_flag |= CLIENT.MULTI_RESULTS


查詢 pymysql 原始碼修改 cursors.py檔案


找到346行


  if self._result and (self._result.has_next or not self._result.warning_count):

        return


修改為


if self._result:

   return









來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30127122/viewspace-2645448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章