mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing
Inception
1. Inceptionj簡(jiǎn)介
Inception是一款針對(duì)MySQL的SQL語(yǔ)句審核自動(dòng)化運(yùn)維工具。使用Inception,將會(huì)給DBA帶來(lái)更大的便利性,將DBA從繁冗的工作中解放出來(lái),做更多的自動(dòng)化工作,或者從架構(gòu)方面研究如何更大程度地保證數(shù)據(jù)庫(kù)的高可用等。
2. Inception安裝
2.1 下載和編譯
獲取Inception源代碼:
git clone https://github.com/mysql-inception/inception.git
依賴包安裝
編譯Inception過(guò)程中依賴一些包才可以成功,依賴的包有如下5個(gè):
bison:用來(lái)編譯語(yǔ)法文件(.yy)。yum收錄的是3.0.4,源碼編譯2.5,官方推薦2.6之前的,所以采用源碼編譯。
#wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.bz2
# tar xf bison-2.5.tar.bz2
# cd bison-2.5# ./configure && make && make installcmake:版本最好用2.8.x
#yum -y installcmake
ncurses安裝
#yum -y install ncurses-devel
安裝g++#yum -y install gcc gcc-c++安裝openssl
#yum -y installopenssl-devel
編譯Inception
# cd /opt
#mkdir -p /inception/{data,logs}
#unzip inception-master.zip -d /inception
# cd/inception/inception-master
# cmake-DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception \-DMYSQL_DATADIR=/inception/data \-DWITH_SSL=bundled \-DCMAKE_BUILD_TYPE=RELEASE \-DMY_MAINTAINER_CXX_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wno-unused-parameter -Woverloaded-virtual"\-DMY_MAINTAINER_C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement"#make && make install
2.2 啟動(dòng)配置
拷貝啟動(dòng)文件
# cp /inception/inception-master/sql/Inception /usr/local/bin/#cp /inception/inception-master/sql/gen_lex_hash /usr/local/bin/
配置參數(shù)文件/etc/inc.cnf
# vi /etc/inc.cnf
[inception]
general_log=1general_log_file=inception.log
port=6669socket=/tmp/inc.socket
character-set-client-handshake=0character-set-server=utf8
inception_remote_system_password=mysql
inception_remote_system_user=wanbin
inception_remote_backup_port=3307inception_remote_backup_host=127.0.0.1inception_support_charset=utf8mb4
inception_enable_nullable=1inception_check_primary_key=1inception_check_column_comment=0inception_check_table_comment=1inception_check_column_default_value=0inception_max_char_length=30inception_osc_min_table_size=1inception_osc_bin_dir=/usr/local/toolkit/bin
inception_osc_chunk_time=0.1inception_enable_blob_type=1
詳細(xì)參數(shù)介紹
port=6669:Inception的服務(wù)端口
socket=/tmp/inc.socket:Inception的套接字文件存放位置
character-set-server=utf8:mysql原生參數(shù)
#Inception 審核規(guī)則
inception_check_insert_field:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在插入語(yǔ)句中,
用來(lái)控制是否指定插入列列表,如果沒(méi)有指定,并且參數(shù)值為ON,則會(huì)報(bào)錯(cuò)。
inception_check_dml_where:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在審核DML語(yǔ)句時(shí),
如果發(fā)現(xiàn)沒(méi)有WHERE條件,并且此參數(shù)設(shè)置為ON,就會(huì)報(bào)錯(cuò),否則被忽略
inception_check_dml_limit:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能說(shuō)明是在DML語(yǔ)句中,如果使用了LIMIT表達(dá)式,
并且此參數(shù)設(shè)置為ON,就會(huì)報(bào)錯(cuò)。這一般用來(lái)防止STATEMENT語(yǔ)句主從復(fù)制時(shí)導(dǎo)致主從不一致的問(wèn)題。
inception_check_dml_orderby:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在DML語(yǔ)句中,如果使用了OrderBy表達(dá)式,
并且此參數(shù)設(shè)置為ON,就會(huì)報(bào)錯(cuò)。這一般用來(lái)防止STATEMENT語(yǔ)句主從復(fù)制時(shí)導(dǎo)致主從不一致的問(wèn)題。
inception_enable_select_star:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在遇到查詢語(yǔ)句為“select*from”,
并且此參數(shù)設(shè)置為ON時(shí),不會(huì)報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_enable_orderby_rand:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是語(yǔ)句中出現(xiàn)orderbyrand()時(shí),
用來(lái)控制是否報(bào)錯(cuò),設(shè)置為ON表示不報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_enable_nullable:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在創(chuàng)建或者新增列時(shí),如果列為NULL,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,表示不報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_enable_foreign_key:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在創(chuàng)建表或增加索引時(shí),如果存在外鍵,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則不報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_max_key_parts:參數(shù)可選范圍為1~64,參數(shù)默認(rèn)值為5,功能是在一個(gè)索引中,用來(lái)控制列的最大個(gè)數(shù),
如果超過(guò)這個(gè)數(shù)目則報(bào)錯(cuò)。在增加索引或新建表時(shí),都會(huì)生效。
inception_max_update_rows:參數(shù)可選范圍為1~MAX,參數(shù)默認(rèn)值為10000,功能是在一個(gè)修改語(yǔ)句中,用來(lái)控制預(yù)計(jì)影響的最大行數(shù),
如果超過(guò)這個(gè)數(shù)就報(bào)錯(cuò)。這個(gè)參數(shù)的獲取方法是explain,對(duì)于有一些語(yǔ)句或在MySQL5.5版本中獲取不到相應(yīng)語(yǔ)句時(shí),預(yù)計(jì)行數(shù)都會(huì)是0,
這時(shí)這個(gè)參數(shù)就失效了。
inception_max_keys:參數(shù)可選范圍為1~1024,參數(shù)默認(rèn)值為16,功能在一個(gè)表中,用來(lái)控制支持的最大索引數(shù)目,
如果超過(guò)這個(gè)數(shù)則報(bào)錯(cuò),不管在新增表,還是新增索引時(shí),都有效。
inception_enable_not_innodb:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是在新建表指定的存儲(chǔ)引擎不是Innodb時(shí),
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則不報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_support_charset:參數(shù)可選范圍為MySQL支持字符集,參數(shù)默認(rèn)值為“utf8mb4”,功能是表示在建表或建庫(kù)時(shí)支持的字符集,
如果需要多個(gè),則用逗號(hào)分隔,影響的范圍是建表、設(shè)置會(huì)話字符集、修改表字符集屬性等。
inception_check_table_comment:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表及沒(méi)有設(shè)置表注釋時(shí),用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則會(huì)報(bào)錯(cuò)。
inception_check_column_comment:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表或改表加列,并且沒(méi)有設(shè)置列注釋時(shí),用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則會(huì)報(bào)錯(cuò)。
inception_check_primary_key:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表時(shí),如果沒(méi)有創(chuàng)建主鍵,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,就會(huì)報(bào)錯(cuò)。
inception_enable_partition_table:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是在建表時(shí),
如果創(chuàng)建了分區(qū)表,用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,不會(huì)報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_enable_enum_set_bit:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是在建表或加列時(shí),
如果列對(duì)應(yīng)的數(shù)據(jù)類型指定的是enum、set、bit數(shù)據(jù)類型,用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則不報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
inception_check_index_prefix:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是用來(lái)檢查新建或建表時(shí)的索引前綴,
普通索引的前綴為“idx_”,唯一索引的前綴為“uniq_”,如果設(shè)置為ON,并且索引前綴不符合規(guī)則,則會(huì)報(bào)錯(cuò)。
inception_enable_autoincrement_unsigned:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在新建表時(shí),
如果自增列不是無(wú)符號(hào)整型的數(shù)據(jù)類型,用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,就報(bào)錯(cuò),否則不報(bào)錯(cuò)。
inception_max_char_length:參數(shù)可選范圍為1~MAX,參數(shù)默認(rèn)值為16,功能是用來(lái)控制當(dāng)char類型的長(zhǎng)度大于多少時(shí),
就提示將其轉(zhuǎn)換為VARCHAR。
inception_check_autoincrement_init_value:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是當(dāng)建表時(shí)自增列的值指定不為1時(shí),
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則報(bào)錯(cuò)。
inception_check_autoincrement_datatype:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表時(shí)自增列的類型不為int或bigint時(shí),
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則會(huì)報(bào)錯(cuò)。
inception_check_timestamp_default:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表時(shí),如果沒(méi)有為timestamp類型指定默認(rèn)值,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則會(huì)報(bào)錯(cuò)。
inception_enable_column_charset:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是在新建表或修改表加列改列時(shí),
用來(lái)控制是否能單獨(dú)指定列的字符集,如果設(shè)置為ON,則表示可以設(shè)置,不報(bào)錯(cuò)。
inception_check_autoincrement_name:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表時(shí),如果指定的自增列名字不為ID,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則報(bào)錯(cuò),表示這個(gè)列可能存在業(yè)務(wù)意義,起到提示的作用。
inception_merge_alter_table:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在同一個(gè)Inception任務(wù)中,多個(gè)語(yǔ)句修改同一個(gè)表的語(yǔ)句出現(xiàn)時(shí),
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,則報(bào)錯(cuò),并提示合成一個(gè)。
inception_check_column_default_value:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表、修改列、新增列時(shí),
用來(lái)控制新的列屬性是否要有默認(rèn)值,如果設(shè)置為ON,則說(shuō)明必須要有默認(rèn)值,否則會(huì)報(bào)錯(cuò)。
inception_enable_blob_type:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是在建表、修改列、新增列操作時(shí),如果存在BLOB類型的列,
用來(lái)控制是否報(bào)錯(cuò),如果設(shè)置為ON,說(shuō)明支持BLOB類型,則不會(huì)報(bào)錯(cuò)。
inception_enable_identifer_keyword:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是在所有審核的SQL語(yǔ)句中,
如果有標(biāo)識(shí)符被寫成MySQL的關(guān)鍵字,用來(lái)控制是否報(bào)錯(cuò)。如果設(shè)置為ON,說(shuō)明支持標(biāo)識(shí)符為關(guān)鍵字,就不會(huì)報(bào)錯(cuò),否則會(huì)報(bào)錯(cuò)。
由于歷史原因,這里的identifer寫錯(cuò)了,正確寫法是identifier,但I(xiàn)nception發(fā)布已久,只能將錯(cuò)就錯(cuò)。
auto_commit:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是為了匹配Python客戶端每次自動(dòng)設(shè)置auto_commit=0的,
如果取消則會(huì)報(bào)錯(cuò),針對(duì)Inception本身沒(méi)有實(shí)際意義。
bind_address:參數(shù)可選范圍為string,參數(shù)默認(rèn)值為*。這個(gè)參數(shù)實(shí)際上就是MySQL數(shù)據(jù)庫(kù)原來(lái)的參數(shù),
因?yàn)镮ncpetion沒(méi)有權(quán)限驗(yàn)證過(guò)程,那么為了實(shí)現(xiàn)更安全的訪問(wèn),可以給Inception服務(wù)器的這個(gè)參數(shù)設(shè)置某些機(jī)器(Inception上層的應(yīng)用程序)的地址,
這樣其他非法程序就是不可訪問(wèn)的了,再加上Inception執(zhí)行選項(xiàng)中的用戶名密碼,對(duì)于后端MySQL就更加安全了。
general_log:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON。
這個(gè)參數(shù)就是原生的MySQL參數(shù),用來(lái)記錄在Inception服務(wù)上執(zhí)行過(guò)哪些語(yǔ)句,定位一些問(wèn)題等。
general_log_file:參數(shù)可選范圍為string,參數(shù)默認(rèn)值為inception.log,功能是設(shè)置generallog寫入的文件路徑。
inception_user:參數(shù)可選范圍為string,參數(shù)默認(rèn)值為empty。這個(gè)用戶名在配置之后,在連接Inception的選項(xiàng)中可以不指定user,
這樣就可以不暴露線上數(shù)據(jù)庫(kù)的用戶名及密碼了,可以作為臨時(shí)使用的一種方式。
但這個(gè)用戶現(xiàn)在只能用來(lái)審核,也就是說(shuō),即使在選項(xiàng)中指定--enable-execute,也不能執(zhí)行,是只能用來(lái)審核的賬號(hào)。
inception_password:參數(shù)可選范圍為string,參數(shù)默認(rèn)值為empty。這個(gè)參數(shù)與上面的參數(shù)是一對(duì)的,對(duì)應(yīng)的是選項(xiàng)中的password,設(shè)置這個(gè)參數(shù)之后,可以在選項(xiàng)中不指定password。
inception_enable_sql_statistic:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON。
用來(lái)設(shè)置是否支持在統(tǒng)計(jì)Inception執(zhí)行過(guò)的語(yǔ)句中,記錄各種語(yǔ)句分別占多大比例。
如果參數(shù)值為ON,則每次執(zhí)行的情況都會(huì)在備份數(shù)據(jù)庫(kù)實(shí)例中inception庫(kù)的statistic表中,以一條記錄的形式存儲(chǔ)這次操作的統(tǒng)計(jì)情況,
每次操作對(duì)應(yīng)一條記錄,這條記錄中含有的信息是各種類型的語(yǔ)句執(zhí)行次數(shù)情況,
具體的信息請(qǐng)參照52章中“Inception對(duì)SQL執(zhí)行情況的統(tǒng)計(jì)”一節(jié)。
inception_read_only:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF。
設(shè)置當(dāng)前Inception服務(wù)器是否為只讀,這是為了防止一些人在具有修改權(quán)限的賬號(hào)時(shí),通過(guò)Inception誤修改一些數(shù)據(jù)。
如果inception_read_only設(shè)置為ON,則即使打開了enable-execute,同時(shí)又有執(zhí)行權(quán)限,也不會(huì)去執(zhí)行,審核完成即返回。
inception_check_identifier:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為ON,功能是打開與關(guān)閉Inception對(duì)SQL語(yǔ)句中各種名字的檢查。
如果設(shè)置為ON,則發(fā)現(xiàn)名字中存在除數(shù)字、字母、下劃線之外的字符時(shí),會(huì)報(bào)Identifier“invalidname”isinvalid,validoptions:[a-z,A-Z,0-9,_]。
inception_max_primary_key_parts:參數(shù)可選范圍為1~64,參數(shù)默認(rèn)值為5,功能是在創(chuàng)建表時(shí),如果主鍵所包含的列個(gè)數(shù)超過(guò)這個(gè)設(shè)置的值,則會(huì)報(bào)警告。
inception_enable_pk_columns_only_int:參數(shù)可選范圍為ON/OFF,參數(shù)默認(rèn)值為OFF,功能是如果參數(shù)設(shè)置為ON,則在創(chuàng)建表或創(chuàng)建主鍵索引時(shí),會(huì)判斷包含的列的類型是否只有INT類型的,如果不是則報(bào)警告。
#備份服務(wù)器信息,注意改成你的機(jī)器.用于回滾。
inception_remote_backup_host:指定遠(yuǎn)程備份MySQL實(shí)例的地址。
inception_remote_backup_port:指定遠(yuǎn)程備份MySQL實(shí)例的端口。
inception_remote_system_user:備份時(shí),連接上面指定的MySQL實(shí)例時(shí)所需要的用戶名,這個(gè)用戶需要有相應(yīng)的權(quán)限,一般包括CREATE、INSERT及SELECT權(quán)限。
inception_remote_system_password:備份時(shí),連接備份庫(kù)時(shí)所需要的用戶對(duì)應(yīng)的密碼。
#inception 支持 OSC 參數(shù)
inception_osc_bin_dir=/user/bin:用于指定pt-online-schema-change腳本的位置,不可修改,在配置文件中設(shè)置
inception_osc_check_interval=5 #對(duì)應(yīng)OSC參數(shù)--check-interval,意義是Sleep time between checks for --max-lag.
inception_osc_chunk_size=1000 #對(duì)應(yīng)OSC參數(shù)--chunk-size
inception_osc_chunk_size_limit=4 #對(duì)應(yīng)OSC參數(shù)--chunk-size-limit
inception_osc_chunk_time=0.1 #對(duì)應(yīng)OSC參數(shù)--chunk-timeinception_osc_critical_thread_connected=1000 #對(duì)應(yīng)參數(shù)--critical-load中的thread_connected部分
inception_osc_critical_thread_running=80 #對(duì)應(yīng)參數(shù)--critical-load中的thread_running部分
inception_osc_drop_new_table=1 #對(duì)應(yīng)參數(shù)--[no]drop-new-table
inception_osc_drop_old_table=1 #對(duì)應(yīng)參數(shù)--[no]drop-old-table
inception_osc_max_lag=3 #對(duì)應(yīng)參數(shù)--max-lag
inception_osc_max_thread_connected=1000 #對(duì)應(yīng)參數(shù)--max-load中的thread_connected部分
inception_osc_max_thread_running=80 #對(duì)應(yīng)參數(shù)--max-load中的thread_running部分
inception_osc_min_table_size=0 # 這個(gè)參數(shù)實(shí)際上是一個(gè)OSC的開關(guān),如果設(shè)置為0,則全部ALTER語(yǔ)句都走OSC,如果設(shè)置為非0,則當(dāng)這個(gè)表占用空間大小大于這個(gè)值時(shí)才使用OSC方式。單位為M,這個(gè)表大小的計(jì)算方式是通過(guò)語(yǔ)句:"select (DATA_LENGTH + INDEX_LENGTH)/1024/1024 from information_schema.tables where table_schema = 'dbname' and table_name = 'tablename'"來(lái)實(shí)現(xiàn)的
inception_osc_on=0#一個(gè)全局的OSC開關(guān),默認(rèn)是打開的,如果想要關(guān)閉則設(shè)置為OFF,這樣就會(huì)直接修改
inception_osc_print_none=1#用來(lái)設(shè)置在Inception返回結(jié)果集中,對(duì)于原來(lái)OSC在執(zhí)行過(guò)程的標(biāo)準(zhǔn)輸出信息是不是要打印到結(jié)果集對(duì)應(yīng)的錯(cuò)誤信息列中,如果設(shè)置為1,就不打印,如果設(shè)置為0,就打印。而如果出現(xiàn)錯(cuò)誤了,則都會(huì)打印
inception_osc_print_sql=1 #對(duì)應(yīng)參數(shù)--print
啟動(dòng)Inception
# Inception --defaults-file=/etc/inc.cnf mysql-h127.0.0.1 -uroot -P66691 [(none)] 10:53:26>inception get variables;+------------------------------------------+---------------------------------------------+
| Variable_name | Value |
+------------------------------------------+---------------------------------------------+
| autocommit | OFF |
| bind_address | * |
| character_set_system | utf8 |
| character_sets_dir | /inception/inception-master/share/charsets/ |
| connect_timeout | 10 |
| date_format | %Y-%m-%d |
| datetime_format | %Y-%m-%d %H:%i:%s |
| general_log | ON |
| general_log_file | inception.log |
| inception_check_autoincrement_datatype | ON |
| inception_check_autoincrement_init_value | ON |
| inception_check_autoincrement_name | ON |
| inception_check_column_comment | OFF |
| inception_check_column_default_value | OFF |
| inception_check_dml_limit | ON |
| inception_check_dml_orderby | ON |
| inception_check_dml_where | ON |
| inception_check_identifier | ON |
| inception_check_index_prefix | ON |
| inception_check_insert_field | ON |
| inception_check_primary_key | ON |
| inception_check_table_comment | ON |
| inception_check_timestamp_default | ON |
| inception_ddl_support | OFF |
| inception_enable_autoincrement_unsigned | ON |
| inception_enable_blob_type | ON |
| inception_enable_column_charset | OFF |
| inception_enable_enum_set_bit | OFF |
| inception_enable_foreign_key | OFF |
| inception_enable_identifer_keyword | OFF |
| inception_enable_not_innodb | OFF |
| inception_enable_nullable | ON |
| inception_enable_orderby_rand | OFF |
| inception_enable_partition_table | OFF |
| inception_enable_pk_columns_only_int | OFF |
| inception_enable_select_star | OFF |
| inception_enable_sql_statistic | ON |
| inception_max_char_length | 30 |
| inception_max_key_parts | 5 |
| inception_max_keys | 16 |
| inception_max_primary_key_parts | 5 |
| inception_max_update_rows | 10000 |
| inception_merge_alter_table | ON |
| inception_osc_alter_foreign_keys_method | none |
| inception_osc_bin_dir | /usr/local/toolkit/bin |
| inception_osc_check_alter | ON |
| inception_osc_check_interval | 5.000000 |
| inception_osc_check_replication_filters | ON |
| inception_osc_chunk_size | 1000 |
| inception_osc_chunk_size_limit | 4.000000 |
| inception_osc_chunk_time | 0.100000 |
| inception_osc_critical_thread_connected | 1000 |
| inception_osc_critical_thread_running | 80 |
| inception_osc_drop_new_table | ON |
| inception_osc_drop_old_table | ON |
| inception_osc_max_lag | 3.000000 |
| inception_osc_max_thread_connected | 1000 |
| inception_osc_max_thread_running | 80 |
| inception_osc_min_table_size | 1 |
| inception_osc_on | ON |
| inception_osc_print_none | ON |
| inception_osc_print_sql | ON |
| inception_osc_recursion_method | processlist |
| inception_password | |
| inception_read_only | OFF |
| inception_remote_backup_host | 127.0.0.1 |
| inception_remote_backup_port | 3307 |
| inception_remote_system_password | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| inception_remote_system_user | wanbin |
| inception_support_charset | utf8mb4 |
| inception_user | |
| interactive_timeout | 28800 |
| max_allowed_packet | 1073741824 |
| max_connect_errors | 100 |
| max_connections | 151 |
| net_buffer_length | 16384 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| port | 6669 |
| query_alloc_block_size | 8192 |
| query_prealloc_size | 8192 |
| socket | /tmp/inc.socket |
| thread_handling | one-thread-per-connection |
| thread_stack | 262144 |
| time_format | %H:%i:%s |
| version | Inception2.1.50 |
| version_comment | Source distribution |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| wait_timeout | 28800 |
+------------------------------------------+---------------------------------------------+
90 rows in set (0.00 sec)
Yearning
1. Yearning簡(jiǎn)介
Yearning 開源的MYSQL SQL語(yǔ)句審核平臺(tái),提供數(shù)據(jù)庫(kù)字典查詢,查詢審計(jì),SQL審核等多種功能。
Yearning 是基于Inception的web可視化SQL審核平臺(tái),其本身只提供可視化交互頁(yè)面并不具備sql審核的能力。
2. Yearning安裝
從v1.3.0版本開始將采取docker運(yùn)行的方式,不再提供普通安裝教程
2.1 Yearning v1.3.0及以上版本安裝
docker-compose安裝
# sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#sudo chmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version 1.22.0, build f46880fe
# service docker start
Yearning安裝
# git clone https://github.com/cookieY/Yearning.git
# cd/opt/Yearning-master/install/yearning-docker-compose
# vim docker-compose.yml
把8080:80 改成 80:80# docker-compose up -d
請(qǐng)注意本地不要占用8080和8000端口 如需要更改端口可再docker-compose.yml文件中更改,3306和8000端口不可更改!docker-compose并不能確定容器的依賴關(guān)系,所以如果執(zhí)行后無(wú)法登陸,請(qǐng)使用docker-compose restart yearning重啟容器
cd /opt/Yearning-master/install/yearning-docker-compose
docker-compose down
或者
docker-compose stop yearning #停止yearning服務(wù)
docker-compose stop db #停止mysql服務(wù)
cd/opt/Yearning-master/install/yearning-docker-compose
docker-compose up -d
或者
docker-compose start yearning #啟動(dòng)yearning服務(wù)
docker-compose start db #啟動(dòng)mysql服務(wù)
默認(rèn)用戶:admin
默認(rèn)密碼: Yearning_admin
使用外部mysql
docker-compose中已經(jīng)包含了mysql且掛載本地目錄,不存在容器銷毀數(shù)據(jù)消失的問(wèn)題,但如果你還是想使用外部mysql,可使用以下步驟:
#新建Yearning庫(kù),設(shè)置字符集為UTF-8,
然后在Yearning庫(kù)中導(dǎo)入sql文件
# cd/opt/Yearning-master/install/yearning-docker-compose/init-sql
mysql>create database Yearning DEFAULT CHARACTER SET utf8mb4;
mysql>use Yearning
mysql>source install.sql
# docker run-d -e HOST=192.168.56.210\-e MYSQL_ADDR=192.168.56.210\-e MYSQL_USER=wanbin \-e MYSQL_PASSWORD=mysql \-p80:80 -p8000:8000 registry.cn-hangzhou.aliyuncs.com/cookie/yearning:v1.3.2
登陸后請(qǐng)通過(guò)設(shè)置頁(yè)面設(shè)置inception及其他配置信息
2.2 Yearning v1.2.0版本安裝
啟動(dòng)
#啟動(dòng)nginx
systemctl start nginx
#啟動(dòng)Inception
Inception--defaults-file=/etc/inc.cnf 啟動(dòng)yearning
cd/opt/Yearning-1.2.0/src/gunicorn settingConf.wsgi:application-c gunicorn.conf
#ps -ef|grepgun
root26174 1 2 13:56 ? 00:00:00 /usr/local/bin/python3.6 /usr/local/bin/gunicorn settingConf.wsgi:application -c gunicorn.conf
root26181 26174 17 13:56 ? 00:00:00 /usr/local/bin/python3.6 /usr/local/bin/gunicorn settingConf.wsgi:application -c gunicorn.conf
root26182 26174 15 13:56 ? 00:00:00 /usr/local/bin/python3.6 /usr/local/bin/gunicorn settingConf.wsgi:application -c gunicorn.conf
root26189 1925 0 13:57 pts/0 00:00:00 grep --color=auto gun
代表啟動(dòng)成功
總結(jié)
以上是生活随笔為你收集整理的mysql inception web_基于Inception搭建MySQL SQL审核平台Yearing的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坩埚多少钱啊?
- 下一篇: 网页服务器和mysql服务器_实现Web