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()
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)
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"])
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
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
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
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'
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]
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
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)
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)
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)
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)
def readConfs(): import glob confs = glob.glob(path.join(MYSQL_CONF_DIR, '*.cnf')) return [MySQLDConfig(c) for c in confs]
def setVariable(name, variable, value): cnf = getCNF(name) if os.path.exists(cnf): mc = MySQLDConfig(cnf) mc.set_var(variable, value) mc.save()