MySQL中数据库重命名

2023-10-31

今天同事让帮忙把线上的数据库重命名。恩?数据库重命名?这种需求的概率小之又小,今天居然还真给碰到了。

表重名的话是rename table old_table to new_table; So,库的重命名最简单快捷的办法是 rename old_db to new_db么? 随便建了个测试库test,试着执行了一下臆想的rename命令,好吧,不行。搜了一下文档才发现,原来早期MySQL版本(5.1.7)中是有过这个命令的,后来出于安全考虑又在MySQL 5.1.23中移除了。。。

没事,咱还有别的办法嘛!之前还真没认真总结过,现在才简单整理一下吧(有些是参考其他朋友整理的)

1.若库中所有表为MyISAM引擎,则可改库对应的文件夹的名字
(现如今这种可能性几乎没有,而且该方法需要停机,不太实际)
关闭MySQL Server:

sudo /etc/init.d/mysql stop

改目录名:

cd /data/mysql; mv old_db new_db;

开启MySQL Server

 sudo /etc/init.d/mysql start

2.重命名旧库下边的所有表

create databases new_db;
rename table old_db.table1 to new_db.table1,old_db.table2 to new_db.table2,...;
drop database old_db;

3.建新库,使用mysqldump工具导出老库数据并导入新库

mysqldump -uuser -ppass -hhost -Pport--single-transaction old_db >old_db.sql
mysql  -uuser -ppass -hhost -Pport -e "create database new_db"
mysql  -uuser -ppass -hhost -Pport  new_db < old_db.sql
mysql  -uuser -ppass -hhost -Pport -e "drop database old_db"

其中方法2中表比较多的情况下,一个个写这些名称未免太痛苦了,可用shell脚本或者存储过程来完成

#!/bin/bash
mysqlconn=" mysql -uuser -ppass  -hhost -Pport ”
old_db=”old_db ”
new_db=”new_db ”
$mysqlconn -e “CREATE DATABASE $new_db”
params=$($mysqlconn -N -e “SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=’$old_db’”)
for name in $params; do
$mysqlconn -e “RENAME TABLE $old_db.$name to $new_db.$name”;
done;
$mysqlconn -e “DROP DATABASE $old_db
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL中数据库重命名 的相关文章

  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • 在mysql中的单个查询中更新多个表

    我有三个查询 我想要一个 这是我的查询 UPDATE tab1 SET a WHERE id 3 UPDATE tab2 SET b WHERE id 9 UPDATE tab3 SET c WHERE id 5 您可以尝试下面的代码 UP
  • 如何优化这个MySQL慢(非常慢)查询?

    我有一个 2 GB 的 mysql 表 包含 500k 行 我在没有负载的系统上运行以下查询 select from mytable where name in n1 n2 n3 n4 bunch more order by salary
  • 从另一台计算机访问 MYSQL

    我想开发一个java桌面应用程序 我想在其中设置服务器 这意味着我在这里使用mysql db 该数据库将仅存储在一台电脑上 其余所有用户都可以访问该数据库 所以 我听说了mysql远程连接 其中尝试了一些事情 这些措施如下 我的电脑已连接w
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • PHP PDO 使用 bindParam 第一个参数(不带冒号)[重复]

    这个问题在这里已经有答案了 请检查这个 user id int GET user id sql DELETE FROM users WHERE user id user id query db gt prepare sql query gt
  • 无法在 Mac 上启动 MySQL

    使用 Brew 安装后 我无法运行 MySQL 我使用的是 OS X El Capitan 版本 10 11 3 和 MySQL Server 版本 5 7 11 当我启动服务器时 我收到 启动 MySQL 错误 服务器退出而不更新 PID
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 在 SQL 中,如何从 SELECT * FROM ... 中排除结果?

    我知道我的标题不太具有描述性 让我在这里详细解释一下 假设一个表有 26 个字段 例如字段 a 字段 z 我只想要一个选择查询只返回 15 个字段 所以 通常 我会执行 SELECT field a field b field o FROM
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 通过触发器应用表的列权限

    现在 我有一个名为 Members 的表 其中包含内容 分为联系人数据 银行数据 现在 管理员应该能够创建 更新 删除用户 这些用户保存在另一个表中 该表只能访问管理员 用户应该获得自己的 mysql 用户帐户 管理员还应该能够设置权限 例

随机推荐

  • 关于百度地图marker的点击事件

    在最开始学习使用百度地图 marker的点击事件 很容易实现点击弹出框 像这样 baiduMap setOnMarkerClickListener new BaiduMap OnMarkerClickListener Override pu
  • 关于MinGW和MSYS

    MinGW是Minimalist GNU for Windows的缩写 是本地Windows应用的极简开发环境 MinGW为本地MS Windows应用的开发提供了完整的开源编程工具集 而且不依赖于第三方C运行时DLL 它确实依赖于很多由微
  • gitee新建仓库并上传项目

    目录 一 新建仓库 二 克隆仓库到本地 三 本地添加项目文件 四 上传至gitee仓库 五 提交代码 更新至远程仓库 一 新建仓库 1 点击右上角的 号 新建仓库 2 填写仓库信息 点击创建即可 二 克隆仓库到本地 1 点击 克隆 下载 S
  • python 用随机森林模型补充数值变量缺失值

    对数据建模之前 填补缺失值是必不可少的一步 这里把用随机森林模型快速预测缺失值的方法总结如下 以方便日后的工作 data df DataFrame类型的数据 obj column 待填补缺失值的列名 missing other column
  • Android开发 亲测可用--多种方式获取手机短信验证码自动填入

    Android开发 静态注册 动态注册 短信中心库监控获取手机验证码 自动复制到剪切板或或填入输入框 友情提醒初学者 这是广播接收器的类 写在xml中静态注册或写在启动类的Oncreate方法下动态注册即可 有新短信通知就会触发 若使用正常
  • Latex常用数学符号

    相关参考 常用数学符号的 LaTeX 表示方法 Latex所有常用数学符号整理 CSDN latex插入图片的文章 Side by side figures in LaTex 可以复制的特殊符号表 数学模式重音符号 hat a hat a
  • 电路分析笔记-电阻电路的等效变换

    电路的等效变换 两端网络 网络 任何一个复杂的电路 向外引出两个端钮 且从一个端子流入的电流等于从另一端子流出的电流 则称这一电路为二端网络 或一端口网络 两端电路等效的概念 两个两端电路 端口具有相同的电压 电流关系 则称它们是等效的电路
  • T5的整体介绍【代码实战】

    T5的整体介绍 代码实战 0 前言 1 Header 2 summary 3 T5 model 3 1 forward 3 2 预训练任务 3 2 1 multi sentence pairs 3 3 完成 tasks 0 前言 本文是对T
  • python语法(高阶)-工厂模式

    参考内容 黑马程序员
  • 李宏毅 机器学习2020 作业5 hw5-explainAI

    本次作业做的是解释机器学习是如何识别一张图片的 用到了上一次CNN作业训练好的模型 先导入需要用得到的库 其中lime需要提前安装 我在安装的时候 conda install命令不能使用 但是使用pip命令就可以安装了 import os
  • 关于代码的注释的几种方法

    注释就是对代码的解释和说明 其目的是让人们能够更加轻松地了解代码 注释是编写程序时 写程序的人给一个语句 程序段 函数等的解释或提示 能提高程序代码的可读性 注释只是为了提高可读性 不会被计算机编译 注释一般分为行注释和块注释 行注释是在某
  • 那些上线MES系统的企业都怎么样了?

    MES系统即制造企业生产过程执行系统 是一套面向制造企业车间执行层的生产信息化管理系统 在智能制造 工业4 0的时代背景下 MES生产管理系统成为制造业纷纷上线的管理软件 旨在提高企业整体生产效率和降低成本 那么企业上线MES系统后的具体有
  • 开源情报分析(OSINT)CTF社工类2万字题详细教程,请不要利用本文章做不道德的事,后果概不负责

    简介 现在国内外最新的ctf比赛都有这个项目了 列如给你一个照片找地址或者人名 给你一个名字找他的社交账号什么的 考验选手的信息收集与社工能力 这篇文章对这类题型做一个基础的总结 以后遇到这种题型就知道该怎么做了 本文章会教你们关于查找有关
  • Protobuf(Protocol Buffers)超详细入门教程(跨平台序列化, Java)——更新于2022.01

    目录 相关教程 相关文献 安装 C Installation Unix 环境 Protobuf3 0基础上手例子 相关教程 Protobuf Protocol Buffers 超详细入门教程 跨平台序列化 C CMake 更新于2022 0
  • 经典的图像去噪算法_NeuNet2020:BRDNet(开源)使用深度CNN和批量归一化进行图像去噪...

    最近哈工大的研究团队于2020年在国际著名的人工智能杂志 神经网络 上发表了 利用深度CNN进行批量重正化的图像去噪 作者信息 在论文中 作者提出了一种新的图像去噪网络 称为批重归一化去噪网络 BRDNet 可以解决硬件资源受限条件处理数据
  • 开发板的上电锁存

    1 开发板的软启动 开发板的电源开关用两种 1 拨码开关 打到一侧则接通 打到另一侧则关闭 开发板只有关闭和运行两种状态 电路设计简单 但是不能实现休眠模式 低功耗模式 2 按键 按下时通电 弹起时断电 但是我们可以给供电电路增加置锁电路
  • windbg双机调试的连接设置和常见问题(真机和VMware虚拟机间的连接)

    一些废话 在做内核开发的时候 windbg给我们提供了方便 但是windbg要求内核调试是双机调试 所以我们首先面对的是调试机和被调试机的连接问题 相信大部分开发人员都是用实体机开发好代码 放到虚拟机中运行 并在实体机中运行windbg对虚
  • linux网络编程(五)epoll进阶

    文章目录 1 事件模型 1 1 ET模式 1 2 LT模式 1 3 比较 2 实例一 3 实例二 4 实例三 1 事件模型 EPOLL事件有两种模型 Edge Triggered ET 边缘触发只有数据到来才触发 不管缓存区中是否还有数据
  • ESP8266云端数据加密保护

    启用mosquitto上加密 要在mosquitto上启用加密 您首先需要拥有证书 您可以从发行证书的公司购买它们 也可以将它们自己生成为自签名证书 安装OpenSSL包 首先 确认您已安装openssl软件包 并且它具有较新的版本 1 0
  • MySQL中数据库重命名

    今天同事让帮忙把线上的数据库重命名 恩 数据库重命名 这种需求的概率小之又小 今天居然还真给碰到了 表重名的话是rename table old table to new table So 库的重命名最简单快捷的办法是 rename old