MySQL多实例管理 for python脚本

#!/usr/bin/env python
#! _*_ coding:utf-8 _*_

#注:多实例DB数据,my.conf,sock文件目录要统一
#每个实例要建有shutdown权限mt_user用户

import os,sys
import socket

myd = '/usr/local/mysql/bin/mysqld'#1
myadmin = '/usr/local/mysql/bin/mysqladmin'
m_user = 'root'
m_password = 'exsddb'

def IsOpen(ip,port):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((ip,int(port)))
s.shutdown(2)
return True
except:
return False

result = IsOpen('127.0.0.1',sys.argv[2])#2
# #1到#2 是判断传入的第二个变量(端口)有没有起动

if sys.argv[1] == 'start': #判断第一个变量是否等于start
if result: #判断端口启动就打印下面的文字
print('Sorry that the port is occupied!')
else: #如果没有启动这个端口那么可以 启动数据库
os.system(myd+ ' --defaults-file=/data/mysql/mysql'+sys.argv[2]+'/my.cnf&')
elif sys.argv[1] == 'restart':
os.system('%s -u%s -p%s -S /tmp/mysql%s.sock shutdown' %(myadmin,m_user,m_password,sys.argv[2]))
os.system('sleep 2')
os.system(myd+ ' --defaults-file=/data/mysql/mysql'+sys.argv[2]+'/my.cnf&')
elif sys.argv[1] == 'stop':
os.system('%s -u%s -p%s -S /tmp/mysql%s.sock shutdown' %(myadmin,m_user,m_password,sys.argv[2]))
else: #判断如果输入错误的操作命令,报下面的文字
print('Please enter ===python %s start+port or restart+port or stop+port===' %sys.argv[0])

 #@_@ 欢迎交流!联系人 广西宾阳 阿桂 qq149951292

 
原文地址:https://www.cnblogs.com/hmysql/p/7245239.html