示例#1
0
文件: myman.py 项目: 467754239/python
def setVariable(instance_name, variable, value):
    cnf = getCNF(instance_name)
    if path.exists(cnf):
         mc = MySQLDConfig(cnf)
         cur = connMySQLd(mc)
         cur.execute("set global %s = %s" % (variable, value))
         mc.set_var(variable, value)
         mc.save()
示例#2
0
def restoreMySQL(name,port,sqlfile,**kw):
	createInstance(name, port,'slave',**kw)
	cnf = getCNF(name)
	if os.path.exists(cnf):
		mc = MySQLDConfig(cnf)
		cmd = 'mysql --host 127.0.0.1 --user root --port %s < %s' % (mc.mysqld_vars['port'],sqlfile)
		runMySQLCmd(cmd)
示例#3
0
def createInstance(name, port):
    cnf = path.join(MYSQL_CONF_DIR, "%s.cnf" % name)
    datadir = path.join(MYSQL_DATA_DIR, name)
    exists_cnfs = readConfs()
    if checkPort(exists_cnfs, port):
        print >>sys.stderr, "Port exist"
        sys.exit(-1)
    if not path.exists(cnf):
        c = _genDict(name, port)
        mc = MySQLDConfig(cnf, **c)
        mc.save()
    else:
        mc = MySQLDConfig(cnf)
    if not path.exists(datadir):
        mysql_install_db(cnf)
        setOwner(datadir, mc.mysqld_vars["user"])
示例#4
0
def stop_mysql(cnf):
    if status_mysql(cnf):
        s = MySQLDConfig(cnf).mysqld_vars['socket']
        cmd = 'mysqladmin shutdown -S %s' % s
        p = Popen(cmd, stdout=PIPE, shell=True)
        s = 'stop the Instance ...succeed!'
        print s
示例#5
0
def statusMySQL(cnf):
	s = MySQLDConfig(cnf).mysqld_vars['socket']
	if os.path.exists(s):
		print '\033[40;36m' + 'The status is running' + '\033[0m'
		return True
	else:
		print '\033[40;36m' + 'The status is not running' + '\033[0m'
		return False
示例#6
0
def status_mysql(cnf):
    s = MySQLDConfig(cnf).mysqld_vars['socket']
    if os.path.exists(s):
        print 'The status is running'
        return True
    else:
        print 'The status is not running'
        return False
示例#7
0
def stopMySQL(cnf):
	if statusMySQL(cnf):
		s = MySQLDConfig(cnf).mysqld_vars['socket']
		cmd = 'mysqladmin shutdown -S %s' % s
		p = Popen(cmd,stdout=PIPE,shell=True)
		s = 'Stop the Instance ...succeed'
	#else:
	#	s = 'The Instance\'s status is not running'
		print '\033[40;33m' + s + '\033[0m'
示例#8
0
文件: myman.py 项目: xoyabc/python
def diffVariables(instance_name):
    cnf = getCNF(instance_name)
    if path.exists(cnf):
        mc = MySQLDConfig(cnf)
        cur = connMySQLd(mc)
        vars = getMyVariables(cur)
        for k, v in mc.mysqld_vars.items():
            k = k.replace('-', '_')
            if k in vars and vars[k] != v:
                print k, v, vars[k]
示例#9
0
def connMySQL(name):
    cnf = getCNF(name)
    if os.path.exists(cnf):
        mc = MySQLDConfig(cnf)
        host = '127.0.0.1'
        port = int(mc.mysqld_vars['port'])
        user = '******'
        conn = MySQLdb.connect(host=host, port=port, user=user)
        cur = conn.cursor()
        return cur
示例#10
0
文件: myman.py 项目: 467754239/python
def createInstance(name, port, dbtype="master", **kw):
    cnf = path.join(MYSQL_CONF_DIR, "%s.cnf" % name)
    datadir = path.join(MYSQL_DATA_DIR, name)
    exists_cnfs = readConfs()
    if checkPort(exists_cnfs, port):
        print >> sys.stderr, "Port exist"
        sys.exit(-1)
    if not path.exists(cnf):
        c = _genDict(name, port)
        c.update(kw)
        mc = MySQLDConfig(cnf, **c)
        mc.save()
    else:
        mc = MySQLDConfig(cnf)
    if not path.exists(datadir):
        mysql_install_db(cnf)
        setOwner(datadir, mc.mysqld_vars['user'])
        run_mysql(cnf)
        cur = connMySQLd(mc)
        setReplMaster(cur)
示例#11
0
def backupMySQL(name):
	cnf = getCNF(name)
	if os.path.exists(cnf):
		mc = MySQLDConfig(cnf)
		import datetime
		now = datetime.datetime.now()
		timestamp = now.strftime("%Y-%m-%d.%H.%M.%S")
		backup_file = os.path.join(MYSQL_BACK_DIR,name,timestamp+'.sql')
		_dir = os.path.dirname(backup_file)
		if not os.path.exists(_dir):
			os.makedirs(_dir)
		cmd = "mysqldump -A -x -F --master-data=1 --host=127.0.0.1 --user=root --port=%s > %s" % (mc.mysqld_vars['port'], backup_file)
		runMySQLCmd(cmd)
示例#12
0
文件: myman.py 项目: xoyabc/python
def setVariable(instance_name, variable, value):
    cnf = getCNF(instance_name)
    if path.exists(cnf):
        mc = MySQLDConfig(cnf)
        cur = connMySQLd(mc)
        cur.execute("set global %s = %s" % (variable, value))
        mc.set_var(variable, value)
        mc.save()
示例#13
0
文件: myman.py 项目: xoyabc/python
def backupMySQL(instance_name):
    cnf = getCNF(instance_name)
    if path.exists(cnf):
        mc = MySQLDConfig(cnf)
        import datetime
        now = datetime.datetime.now()
        timestamp = now.strftime('%Y-%m-%d-%H%M%S')
        backup_file = path.join(MYSQL_BACK_DIR, instance_name,
                                timestamp + '.sql')
        _dir = path.dirname(backup_file)

        if not path.exists(_dir):
            os.makedirs(_dir)
        cmd = "mysqldump -A -x -F --master-data=1 --host=127.0.0.1 --user=root --port=%s > %s" % (
            mc.mysqld_vars['port'], backup_file)
        runMySQLdump(cmd)
示例#14
0
文件: myman.py 项目: xoyabc/python
def restoreMySQL(instance_name, instance_port, sqlfile, **kw):
    createInstance(instance_name, instance_port, **kw)
    cnf = getCNF(instance_name)
    if path.exists(cnf):
        mc = MySQLDConfig(cnf)
        cur = connMySQLd(mc)
        cmd = "mysql -h 127.0.0.1 -P %s -u root < %s" % (
            mc.mysqld_vars['port'], sqlfile)
        f, p = getBinlogPOS(sqlfile)
        runMySQLdump(cmd)
        changeMaster(cur,
                     host=kw['master-host'],
                     port=kw['master-port'],
                     user=REPLICATION_USER,
                     mpass=REPLICATION_PASS,
                     mf=f,
                     p=p)
示例#15
0
文件: myman.py 项目: xoyabc/python
def createInstance(name, port, dbtype="master", **kw):
    cnf = path.join(MYSQL_CONF_DIR, "%s.cnf" % name)
    datadir = path.join(MYSQL_DATA_DIR, name)
    exists_cnfs = readConfs()
    if checkPort(exists_cnfs, port):
        print >> sys.stderr, "Port exist"
        sys.exit(-1)
    if not path.exists(cnf):
        c = _genDict(name, port)
        c.update(kw)
        mc = MySQLDConfig(cnf, **c)
        mc.save()
    else:
        mc = MySQLDConfig(cnf)
    if not path.exists(datadir):
        mysql_install_db(cnf)
        setOwner(datadir, mc.mysqld_vars['user'])
        run_mysql(cnf)
        cur = connMySQLd(mc)
        setReplMaster(cur)
示例#16
0
文件: myman.py 项目: xoyabc/python
def readConfs():
    import glob
    confs = glob.glob(path.join(MYSQL_CONF_DIR, '*.cnf'))
    return [MySQLDConfig(c) for c in confs]
示例#17
0
def setVariable(name, variable, value):
    cnf = getCNF(name)
    if os.path.exists(cnf):
        mc = MySQLDConfig(cnf)
        mc.set_var(variable, value)
        mc.save()