#!/usr/bin/env Python
# -*- coding: utf-8 -*-
##############################################################################
# @Author: wangwei
# @E-mail: wangwei03@gyyx.cn
# @Create Date: 2012-06-19
# @Version: V1
#注意事项:1、主库已经按照要求修改配置文件打开了bin-log,设置了相关参数
# 2、从库已经安装和主库一样版本的mysql
# 3、运行之后删除/data1/目录下的压缩包
# 4、运行格式:python create_slave.py 根据提示输入主库的内网地址
# 5、在执行check_mysql时,会出现Broken pipe的错误,这个是由于python调用系统命令关闭和打开mysql时显示的信息没有正确的显示在终端造成的,没有影响,暂时没有找到不让显示此类信息的方法,亟待解决
##############################################################################
importparamiko,os,sys,datetime,time,MySQLdb
classDatabase:
def__init__(self,host):
self.user='root'
self.password='14314'
self.port=10000
self.today=datetime.date.today().strftime('%Y%m%d')
self.bindir='/data1/mysql_log'
self.host=host
ifnotos.path.isdir(self.bindir):
os.mkdir(self.bindir)
os.popen("ln -s /data1/mysql_log /mysql_log")
ifnotos.path.isdir('/data1/mysql_log/binlog'):
os.mkdir('/data1/mysql_log/binlog')
ifnotos.path.isdir('/data1/mysql_log/relaylog'):
os.mkdir('/data1/mysql_log/relaylog')
os.popen("chown -R mysql.mysql /data1/mysql_log/")
defcheck_mysql(self):#检查从库nysql数据库服务是否运行,如在运行则pkill掉,然后跳过权限表启动,为导入数据做准备
print"\033[1;32;40m%s\033[0m"%"Check mysql now,Please wait...."
ifnotos.path.isdir("/usr/local/mysql"):
print"\033[1;31;40m%s\033[0m"%" Mysql not install,Please install mysql !"
sys.exit()
ifos.popen("netstat -ntlp|grep 3306|wc -l").read().strip() !='0':
os.popen("pkill mysqld")
time.sleep(5)
conm ="/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/l