Cetos7.4系统 环境设置
1
2
|
yum
install
cmake ncurses-devel gcc gcc-c++ openssl-devel
yum remove bison -y
|
1
2
3
4
5
6
7
8
9
10
11
12
|
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
|
1
2
3
4
5
6
7
|
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
|
配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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
|
启动测试
1
2
3
4
5
6
|
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'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#/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 :