Cetos7.4系统 环境设置
yum install cmake ncurses-devel gcc gcc-c++ openssl-devel yum remove bison -y
cd /usr/local/src/ wget http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gz tar -zxvf m4-1.4.18.tar.gz cd m4-1.4.18 ./configure && make && make install wget http://ftp.gnu.org/gnu/bison/bison-2.4.tar.gz tar -zxvf bison-2.4.tar.gz cd bison-2.4/ ./configure
cd /usr/local/ wget https://github.com/mysql-inception/inception/archive/master.zip unzip master.zip mv inception-master/ inception mv master.zip inception.zip mv inception.zip /usr/local/src/ sh inception_build.sh builddir linux
配置文件
vim inc.cnf [inception] general_log=1 general_log_file=inception.log port=6669 socket=/tmp/mysql.sock character-set-client-handshake=0 character-set-server=utf8 inception_remote_system_password=root inception_remote_system_user=123456 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_enable_blob_type=1 inception_check_column_default_value=1
启动测试
nohup /usr/local/inception/builddir/mysql/bin/Inception --defaults-file=inc.cnf >/dev/null 2>&1 & mysql -uroot -h127.0.0.1 -P6669 inception get variables;
安装测试完成。
python3
由于python3使用的pymysql模块里并未兼容inception返回的server信息,因此需要编辑/path/to/python3/lib/python3.4/site-packages/pymysql/connections.py:
在if int(self.server_version.split('.', 1)[0]) >= 5: 这一行之前加上以下这一句并保存,记得别用tab键用4个空格缩进:
self.server_version = '5.6.24-72.2-log'
#/usr/bin/python #_*_ coding:utf-8 _*_ import pymysql.cursors sql='/*--user=root;--password=123456;--host=192.168.10.81;--execute=1;--port=3306;*/\ inception_magic_start;\ use hequan;\ CREATE TABLE adaptive_office(id int);\ inception_magic_commit;' try: conn=pymysql.connect(host='127.0.0.1',user='',passwd='',db='',port=6669) cursor=conn.cursor() cursor.execute(sql) results = cursor.fetchall() column_name_max_size=max(len(i[0]) for i in cursor.description) row_num=0 for result in results: row_num=row_num+1 print('*'.ljust(27,'*'),row_num,'.row', '*'.ljust(27,'*')) row = map(lambda x, y: (x,y), (i[0] for i in cursor.description), result) for each_column in row: if each_column[0] != 'errormessage': print(each_column[0].rjust(column_name_max_size),":",each_column[1]) else: print(each_column[0].rjust(column_name_max_size),':',each_column[1].replace('\n','\n'.ljust(column_name_max_size+4))) cursor.close() conn.close() except pymysql.Error as e: print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
*************************** 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
stage : CHECKED
errlevel : 2
stagestatus : Audit completed
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)
Affected_rows : 0
sequence : '0_0_1'
backup_dbname : 192_168_10_81_3306_hequan
execute_time : 0
sqlsha1 :