天天看點

Centos7.4 安裝 Inception

Cetos7.4系統  環境設定

1

2

<code>yum </code><code>install</code> <code>cmake   ncurses-devel gcc gcc-c++  openssl-devel</code>

<code>yum  remove bison -y</code>

3

4

5

6

7

8

9

10

11

12

<code>cd</code> <code>/usr/local/src/</code>

<code>wget http:</code><code>//ftp</code><code>.gnu.org</code><code>/gnu/m4/m4-1</code><code>.4.18.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>-zxvf m4-1.4.18.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>m4-1.4.18</code>

<code>.</code><code>/configure</code> <code>&amp;&amp; </code><code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>wget  http:</code><code>//ftp</code><code>.gnu.org</code><code>/gnu/bison/bison-2</code><code>.4.</code><code>tar</code><code>.gz</code>

<code>tar</code> <code>-zxvf bison-2.4.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>bison-2.4/</code>

<code>.</code><code>/configure</code>

<code>cd</code> <code>/usr/local/</code>

<code>wget https:</code><code>//github</code><code>.com</code><code>/mysql-inception/inception/archive/master</code><code>.zip</code>

<code>unzip master.zip</code>

<code>mv</code> <code>inception-master/  inception</code>

<code>mv</code> <code>master.zip inception.zip</code>

<code>mv</code> <code>inception.zip   </code><code>/usr/local/src/</code>

<code>sh inception_build.sh builddir  linux</code>

配置檔案

13

14

15

16

17

18

19

20

21

22

<code>vim   inc.cnf</code>

<code>[inception]</code>

<code>general_log=1</code>

<code>general_log_file=inception.</code><code>log</code>

<code>port=6669</code>

<code>socket=/tmp/mysql.sock</code>

<code>character-set-client-handshake=0</code>

<code>character-set-server=utf8</code>

<code>inception_remote_system_password=root</code>

<code>inception_remote_system_user=123456</code>

<code>inception_remote_backup_port=3306</code>

<code>inception_remote_backup_host=127.0.0.1</code>

<code>inception_support_charset=utf8mb4</code>

<code>inception_enable_nullable=0</code>

<code>inception_check_primary_key=1</code>

<code>inception_check_column_comment=1</code>

<code>inception_check_table_comment=1</code>

<code>inception_osc_min_table_size=1</code>

<code>inception_osc_bin_dir=/data/temp</code>

<code>inception_osc_chunk_time=0.1</code>

<code>inception_enable_blob_type=1</code>

<code>inception_check_column_default_value=1</code>

啟動測試

<code>nohup</code>    <code>/usr/local/inception/builddir/mysql/bin/Inception</code>  <code>--defaults-</code><code>file</code><code>=inc.cnf   &gt;</code><code>/dev/null</code>  <code>2&gt;&amp;1   &amp;</code>

<code>mysql -uroot -h127.0.0.1 -P6669</code>

<code>inception get variables;</code>

安裝測試完成。

python3  

由于python3使用的pymysql子產品裡并未相容inception傳回的server資訊,是以需要編輯/path/to/python3/lib/python3.4/site-packages/pymysql/connections.py:

在if int(self.server_version.split('.', 1)[0]) &gt;= 5: 這一行之前加上以下這一句并儲存,記得别用tab鍵用4個空格縮進:

self.server_version = '5.6.24-72.2-log'

<a href="https://github.com/jly8866/archer/raw/master/screenshots/pymysql.png"></a>

23

24

25

26

27

28

<code>#/usr/bin/python</code>

<code>#_*_ coding:utf-8  _*_</code>

<code>import</code> <code>pymysql.cursors</code>

<code>sql='/*--user=root;--password=123456;--host=192.168.10.81;--execute=1;--port=3306;*/\</code>

<code>inception_magic_start;\</code>

<code>use hequan;\</code>

<code>CREATE TABLE adaptive_office(</code><code>id</code> <code>int);\</code>

<code>inception_magic_commit;'</code>

<code>try:</code>

<code>    </code><code>conn=pymysql.connect(host=</code><code>'127.0.0.1'</code><code>,user=</code><code>''</code><code>,</code><code>passwd</code><code>=</code><code>''</code><code>,db=</code><code>''</code><code>,port=6669)</code>

<code>    </code><code>cursor=conn.cursor()</code>

<code>    </code><code>cursor.execute(sql)</code>

<code>    </code><code>results = cursor.fetchall()</code>

<code>    </code><code>column_name_max_size=max(len(i[0]) </code><code>for</code> <code>i </code><code>in</code> <code>cursor.description)</code>

<code>    </code><code>row_num=0</code>

<code>    </code><code>for</code> <code>result </code><code>in</code> <code>results:</code>

<code>        </code><code>row_num=row_num+1</code>

<code>        </code><code>print(</code><code>'*'</code><code>.ljust(27,</code><code>'*'</code><code>),row_num,</code><code>'.row'</code><code>, </code><code>'*'</code><code>.ljust(27,</code><code>'*'</code><code>))</code>

<code>        </code><code>row = map(lambda x, y: (x,y), (i[0] </code><code>for</code> <code>i </code><code>in</code> <code>cursor.description), result)</code>

<code>        </code><code>for</code> <code>each_column </code><code>in</code> <code>row:</code>

<code>            </code><code>if</code> <code>each_column[0] != </code><code>'errormessage'</code><code>:</code>

<code>                </code><code>print(each_column[0].rjust(column_name_max_size),</code><code>":"</code><code>,each_column[1])</code>

<code>            </code><code>else</code><code>:   </code>

<code>                </code><code>print(each_column[0].rjust(column_name_max_size),</code><code>':'</code><code>,each_column[1].replace(</code><code>'\n'</code><code>,</code><code>'\n'</code><code>.ljust(column_name_max_size+4)))</code>

<code>    </code><code>cursor.close()</code>

<code>    </code><code>conn.close()</code>

<code>except pymysql.Error as e:</code>

<code>     </code><code>print(</code><code>"Mysql Error %d: %s"</code> <code>% (e.args[0], e.args[1]))</code>

*************************** 1 .row ***************************

           ID : 1

        stage : CHECKED

     errlevel : 0

  stagestatus : Audit completed

errormessage : None

          SQL : use hequan

Affected_rows : 0

     sequence : '0_0_0'

backup_dbname : None

execute_time : 0

      sqlsha1 :

*************************** 2 .row ***************************

           ID : 2

     errlevel : 2

errormessage : Table 'adaptive_office' already exists.

                Set engine to innodb for table 'adaptive_office'.

                Set charset to one of 'utf8mb4' for table 'adaptive_office'.

                Set comments for table 'adaptive_office'.

                Column 'id' in table 'adaptive_office' have no comments.

                Column 'id' in table 'adaptive_office' is not allowed to been nullable.

                Set Default value for column 'id' in table 'adaptive_office'

                Set a primary key for table 'adaptive_office'.

          SQL : CREATE TABLE adaptive_office(id int)

     sequence : '0_0_1'

backup_dbname : 192_168_10_81_3306_hequan

本文轉自 295631788 51CTO部落格,原文連結:http://blog.51cto.com/hequan/2052602,如需轉載請自行聯系原作者