• 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

     
  • 相关阅读:
    Servlet 规范 简介
    Redis简介
    some tips
    初识Servlet
    JVM基础知识
    使用typora编辑博客
    航海が始まる日
    比较好的IT教程网
    vue 使用心得---工作中一些关键点
    Vue父组件主动获取子组件的数据和方法
  • 原文地址:https://www.cnblogs.com/hmysql/p/7245239.html
Copyright © 2020-2023  润新知