MySQL在线修改数据库名称

本文介绍了一种使用Python脚本实现MySQL数据库表批量迁移的方法。通过创建备份数据库并利用rename命令将原有数据库表迁移到新数据库中,适用于需要对多个数据库进行统一迁移的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍:略

思路:借助rename这个命令

基本操作:rename olddb.tables to newdb.tables

直接脚本执行:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MySQLdb
import time
class m_s:
    def __init__(self,host,user,password,port):
        self.host=host
        self.user=user
        self.passowrd=password
        self.port=port
        print self.host,self.user,self.passowrd,self.port
    def getConn(self,db="mysql"):
        try:
            conn=MySQLdb.connect(host=self.host, user=self.user, passwd=self.passowrd, db=db, port=self.port, charset="utf8")

            cur = conn.cursor()

            d_b=["db_cloud_s_006_33","db_cloud_s_007_33","db_cloud_s_008_33","db_cloud_s_009_33"] #定义要修改的数据库

            for i in range(len(d_b)):
  sql='''SELECT TABLE_SCHEMA,table_name FROM information_schema.tables WHERE TABLE_SCHEMA="'''+str(d_b[i])+'''"  GROUP BY TABLE_SCHEMA,table_name''' ##获取要修改库下对应的表信息
print sql
cur.execute(sql)
                db_list=cur.fetchall()
# print db_list
                sql2 = '''create database ''' + str(d_b[i]) + "_bak" ##创建新的数据库
                print sql2
                cur.execute(sql2)
                conn.commit()
                new_db = str(d_b[i]) + "_bak" ##新数据库名字
                for j in range(len(db_list)):
                    sql3="rename table "+str(db_list[j][0])+"."+str(db_list[j][1])+" to " +new_db+"."+str(db_list[j][1])
   print sql3
                    cur.execute(sql3)
                    conn.commit()
                    print sql3
time.sleep(5)
            return  "OK"
        except Exception as e:
            return e




if __name__ =="__main__":
    M=m_s("192.168.21.31","username","passoword",6330)
    print M.getConn()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值