共計(jì) 12479 個(gè)字符,預(yù)計(jì)需要花費(fèi) 32 分鐘才能閱讀完成。
這篇文章主要為大家展示了“MySQL Inception For Linux 怎么安裝”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MySQL Inception For Linux 怎么安裝”這篇文章吧。
安裝過(guò)程如下:
1. 下載:https://github.com/mysql-inception/inception 選擇下載 inception-master.zip, 然后將它上傳到服務(wù)器 /root 目錄
2. 解壓并安裝:
# unzip inception-master.zip
#cd inception-master
#yum -y install cmake bison ncurses-devel gcc gcc-c++ openssl-devel
#mkdir /data
#mkdir -P /usr/local/inception – 這里創(chuàng)建的是 Inception 的安裝目錄。可根據(jù)自己的情況自行決定
#mkdir -P /data/inception – 這里創(chuàng)建的是 Inception 的數(shù)據(jù)目錄。也可根據(jù)自己的情況自行決定
#unzip master
#cd inception-master/
#cmake .
#cmake -DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception -DMYSQL_DATADIR=/data/inception – 安裝指定安裝目錄和數(shù)據(jù)目錄
#make make install
編譯中間發(fā)現(xiàn)會(huì)報(bào)錯(cuò):
make[2]: * [sql/CMakeFiles/sql.dir/sql_yacc.cc.o] Error 1
make[1]: * [sql/CMakeFiles/sql.dir/all] Error 2
make: * [all] Error 2
解決方法:
經(jīng)檢查發(fā)現(xiàn)已安裝 bison 的版本為 2.1, 較低,而手冊(cè)建議的版本為 2.6 之前的, 建議用 2.5.1 版本。
去 http://ftp.gnu.org/gnu/bison/ 網(wǎng)址下載 bison-2.5.1.tar.gz
解壓縮后編譯安裝,安裝完后的路徑為 /usr/local/bin/bison,
確認(rèn)版本為 2.5.1 后,再次進(jìn)入 inception-master 目錄,刪除 CMakeCache.txt 后重新編譯:
#cd inception-master/
# rm CMakeCache.txt
#cmake .
#cmake -DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception -DMYSQL_DATADIR=/data/inception
#make
#make install
這次沒(méi)有報(bào)錯(cuò),make install 完后,
編輯 /etc/inc.cnf 文件,增加如下內(nèi)容:
#vim /etc/inc.cnf
[inception]
general_log=1
general_log_file=/usr/local/inception/data/inception.log
port=6669
socket=/data/workspace/inception_data/inc.socket
character-set-client-handshake=0
character-set-server=utf8
inception_remote_system_password=123456
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=/data/temp
inception_osc_chunk_time=0.1
inception_ddl_support=1
inception_enable_blob_type=1
inception_check_column_default_value=1
3. 啟動(dòng) inception(放后臺(tái)執(zhí)行)
[root@test1 ~]# nohup /usr/local/inception/bin/Inception –defaults-file=/etc/inc.cnf
看到 nohup 有如下輸出說(shuō)明啟動(dòng)成功:
[root@test1 ~]# cat nohup.out
2017-03-16 15:48:14 0 [Note] Welcome to use Inception2.1.50
2017-03-16 15:48:14 46451 [Note] Server hostname (bind-address): * port: 6669
2017-03-16 15:48:14 46451 [Note] IPv6 is available.
2017-03-16 15:48:14 46451 [Note] – :: resolves to ::
2017-03-16 15:48:14 46451 [Note] Server socket created on IP: :: .
4. 登陸 inception 測(cè)試:
[root@test1 ~]# mysql -uroot -h227.0.0.1 -P6669
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: Inception2.1.50 1
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type help; or \h for help. Type \c to clear the current input statement.
MySQL [(none)]
MySQL [(none)]
MySQL [(none)]
MySQL [(none)] inception get variables;
+——————————————+——————————————-+
| Variable_name | Value |
+——————————————+——————————————-+
| autocommit | OFF |
| bind_address | * |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/inception/bin/share/charsets/ |
| connect_timeout | 10 |
| date_format | %Y-%m-%d |
| datetime_format | %Y-%m-%d %H:%i:%s |
| general_log | ON |
| general_log_file | /usr/local/inception/data/inception.log |
| inception_check_autoincrement_datatype | ON |
| inception_check_autoincrement_init_value | ON |
| inception_check_autoincrement_name | ON |
| inception_check_column_comment | ON |
| inception_check_column_default_value | ON |
| 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 | ON |
| 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 | OFF |
| 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 | 16 |
| 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 | /data/temp |
| 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 | 3306 |
| inception_remote_system_password | *4086D17D857F0000F04C5A0000000000210A0078 |
| inception_remote_system_user | root |
| 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 | /data/workspace/inception_data/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)
輸出了所有的變量,說(shuō)明 Inception 啟動(dòng)成功。
附:(variables 的參數(shù)解釋):
[inception]
general_log=1 #這個(gè)參數(shù)就是原生的 MySQL 的參數(shù),用來(lái)記錄在 Inception 服務(wù)上執(zhí)行過(guò)哪些語(yǔ)句,用來(lái)定位一些問(wèn)題等
general_log_file=/usr/local/inception/data/inception.log #設(shè)置 general log 寫(xiě)入的文件路徑
port=6669 #Inception 的服務(wù)端口
socket=/data/inception/inc.socket #Inception 的套接字文件存放位置
character-set-server=utf8 #mysql 原生參數(shù)
#Inception 審核規(guī)則
inception_check_autoincrement_datatype=1 #當(dāng)建表時(shí)自增列的類型不為 int 或者 bigint 時(shí)報(bào)錯(cuò)
inception_check_autoincrement_init_value=1 #當(dāng)建表時(shí)自增列的值指定的不為 1,則報(bào)錯(cuò)
inception_check_autoincrement_name=1 #建表時(shí),如果指定的自增列的名字不為 ID,則報(bào)錯(cuò),說(shuō)明是有意義的,給提示
inception_check_column_comment=1 #建表時(shí),列沒(méi)有注釋時(shí)報(bào)錯(cuò)
inception_check_column_default_value=0 #檢查在建表、修改列、新增列時(shí),新的列屬性是不是要有默認(rèn)值
inception_check_dml_limit=1 #在 DML 語(yǔ)句中使用了 LIMIT 時(shí),是不是要報(bào)錯(cuò)
inception_check_dml_orderby=1 #在 DML 語(yǔ)句中使用了 Order By 時(shí),是不是要報(bào)錯(cuò)
inception_check_dml_where=1 #在 DML 語(yǔ)句中沒(méi)有 WHERE 條件時(shí),是不是要報(bào)錯(cuò)
inception_check_identifier=1 #打開(kāi)與關(guān)閉 Inception 對(duì) SQL 語(yǔ)句中各種名字的檢查,如果設(shè)置為 ON,則如果發(fā)現(xiàn)名字中存在除數(shù)字、字母、下劃線之外的字符時(shí),會(huì)報(bào) Identifier invalidname is invalid, valid options: [a-z,A-Z,0-9,_].
inception_check_index_prefix=1 #是不是要檢查索引名字前綴為 idx_,檢查唯一索引前綴是不是 uniq_
inception_check_insert_field=1 # 是不是要檢查插入語(yǔ)句中的列鏈表的存在性
inception_check_primary_key=1 #建表時(shí),如果沒(méi)有主鍵,則報(bào)錯(cuò)
inception_check_table_comment=1 #建表時(shí),表沒(méi)有注釋時(shí)報(bào)錯(cuò)
inception_check_timestamp_default=0 #建表時(shí),如果沒(méi)有為 timestamp 類型指定默認(rèn)值,則報(bào)錯(cuò)
inception_enable_autoincrement_unsigned=1 #自增列是不是要為無(wú)符號(hào)型
inception_enable_blob_type=0 #檢查是不是支持 BLOB 字段,包括建表、修改列、新增列操作 默認(rèn)開(kāi)啟
inception_enable_column_charset=0 #允許列自己設(shè)置字符集
inception_enable_enum_set_bit=0 #是不是支持 enum,set,bit 數(shù)據(jù)類型
inception_enable_foreign_key=0 #是不是支持外鍵
inception_enable_identifer_keyword=0 #檢查在 SQL 語(yǔ)句中,是不是有標(biāo)識(shí)符被寫(xiě)成 MySQL 的關(guān)鍵字,默認(rèn)值為報(bào)警。
inception_enable_not_innodb=0 #建表指定的存儲(chǔ)引擎不為 Innodb,不報(bào)錯(cuò)
inception_enable_nullable=0 #創(chuàng)建或者新增列時(shí)如果列為 NULL,不報(bào)錯(cuò)
inception_enable_orderby_rand=0 #order by rand 時(shí)是不是報(bào)錯(cuò)
inception_enable_partition_table=0 #是不是支持分區(qū)表
inception_enable_select_star=0 #Select* 時(shí)是不是要報(bào)錯(cuò)
inception_enable_sql_statistic=1 #設(shè)置是不是支持統(tǒng)計(jì) Inception 執(zhí)行過(guò)的語(yǔ)句中,各種語(yǔ)句分別占多大比例,如果打開(kāi)這個(gè)參數(shù),則每次執(zhí)行的情況都會(huì)在備份數(shù)據(jù)庫(kù)實(shí)例中的 inception 庫(kù)的 statistic 表中以一條記錄存儲(chǔ)這次操作的統(tǒng)計(jì)情況,每次操作對(duì)應(yīng)一條記錄,這條記錄中含有的信息是各種類型的語(yǔ)句執(zhí)行次數(shù)情況。
inception_max_char_length=16 #當(dāng) char 類型的長(zhǎng)度大于這個(gè)值時(shí),就提示將其轉(zhuǎn)換為 VARCHAR
inception_max_key_parts=5 #一個(gè)索引中,列的最大個(gè)數(shù),超過(guò)這個(gè)數(shù)目則報(bào)錯(cuò)
inception_max_keys=16 #一個(gè)表中,最大的索引數(shù)目,超過(guò)這個(gè)數(shù)則報(bào)錯(cuò)
inception_max_update_rows=10000 #在一個(gè)修改語(yǔ)句中,預(yù)計(jì)影響的最大行數(shù),超過(guò)這個(gè)數(shù)就報(bào)錯(cuò)
inception_merge_alter_table=1 #在多個(gè)改同一個(gè)表的語(yǔ)句出現(xiàn)是,報(bào)錯(cuò),提示合成一個(gè)
#inception 支持 OSC 參數(shù)
inception_osc_bin_dir=/data/temp #用于指定 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-time
inception_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=1 # 這個(gè)參數(shù)實(shí)際上是一個(gè) OSC 的開(kāi)關(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=1 #一個(gè)全局的 OSC 開(kāi)關(guān),默認(rèn)是打開(kāi)的,如果想要關(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
#inception_user #這個(gè)用戶名在配置之后,在連接 Inception 的選項(xiàng)中可以不指定 user,這樣線上數(shù)據(jù)庫(kù)的用戶名及密碼就可以不暴露了,可以做為臨時(shí)使用的一種方式,但這個(gè)用戶現(xiàn)在只能是用來(lái)審核,也就是說(shuō),即使在選項(xiàng)中指定 –enable-execute,也不能執(zhí)行,這個(gè)是只能用來(lái)審核的帳號(hào)。
#inception_password #與上面的參數(shù)是一對(duì),這個(gè)參數(shù)對(duì)應(yīng)的是選項(xiàng)中的 password,設(shè)置這個(gè)參數(shù)之后,可以在選項(xiàng)中不指定 password
inception_read_only=0 #設(shè)置當(dāng)前 Inception 服務(wù)器是不是只讀的,這是為了防止一些人具有修改權(quán)限的帳號(hào)時(shí),通過(guò) Inception 誤修改一些數(shù)據(jù),如果 inception_read_only 設(shè)置為 ON,則即使開(kāi)了 enable-execute,同時(shí)又有執(zhí)行權(quán)限,也不會(huì)去執(zhí)行,審核完成即返回
# 備份服務(wù)器信息
inception_remote_system_password=123456
inception_remote_system_user=root
inception_remote_backup_port=3306
inception_remote_backup_host=192.168.1.54
inception_support_charset=utf8 #表示在建表或者建庫(kù)時(shí)支持的字符集,如果需要多個(gè),則用逗號(hào)分隔,影響的范圍是建表、設(shè)置會(huì)話字符集、修改表字符集屬性等
以上是“MySQL Inception For Linux 怎么安裝”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!