如何修改MySQL数据库名称
比如数据库名称old_db想改名为new_db
- MySQL修改数据库名称比较麻烦,不支持直接修改,需要通过其它方式间接达到修改数据库名称的目的。
- 在 MySQL 5.1.23 之前的旧版本中,我们可以使用
RENAME DATABASE来重命名数据库,但此后版本,因为安全考虑,删掉了这一条命令。
方法一:先导出数据,再导入数据
当数据库体积比较小时,最快的方法是使用mysqldump命令来创建整个数据库的转存副本,然后新建数据库,再把副本导入到新数据库中。
1.1 先创建新库:
create database new_db;
1.2 使用mysqldump导出数据:
mysqldump -uroot -p123456 --set-gtid-purged=OFF old_db > /tmp/old_db.sql
仅是做普通的本机备份恢复时,可以添加
--set-gtid-purged=OFF
作用是在备份时候不出现GTID信息
1.3 导入数据到新库:
mysql -uroot -p123456 new_db < /tmp/old_db.sql
方法二:通过修改表名称,间接实现修改数据库名称
使用此方法实际上将所有表从一个数据库移动到另一个数据库,这实际上重命名了该数据库(MySQL没有单个语句的操作),移动后原始数据库继续存在,但是里面没有表。
RENAME TABLE:https://dev.mysql.com/doc/refman/5.7/en/rename-table.html
2.1 先创建新库:
create database new_db;
2.2 使用RENAME TABLE命令修改表名,将表移动到新的库里:
rename table old_db.tb to new_db.tb;
2.3 完成后删除旧库:
drop database old_db;
2.4 如何使用shell脚本来批量修改表名:
- 当库下表比较多的时候,用上面方法纯手动也不现实,好在
linux下可以用shell脚本来批处理。 - 附上一个
shell脚本批量修改表名称。
#!/bin/bash
mysql -uroot -p123456 -e 'create database if not exists new_db;'
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='old_db'")
for table in $list_table
do
mysql -uroot -p123456 -e "rename table old_db.$table to new_db.$table"
done
mysql登陆命令行参数
- -e, --execute=name # 执行mysql的sql语句
- -N, --skip-column-names # 不显示列信息
- -s, --silent # 一行一行输出,中间有tab分隔
因为有悔,所以披星戴月;因为有梦,所以奋不顾身! 个人博客首发:easydb.net 微信公众号:easydb 关注我,不走丢!
如何修改MySQL数据库名称的更多相关文章
- 使用SQL语句修改Mysql数据库字符集的方法
使用SQL语句修改Mysql数据库字符集的方法 修改库: alter database [$database] character set [$character_set] collate [$c ...
- 修改MySQL数据库的密码
通过MySQL命令行,可以修改MySQL数据库的密码,下面就为您详细介绍该MySQL命令行,如果您感兴趣的话,不妨一看. 格式:mysql -u用户名 -p旧密码 password 新密码 1.给ro ...
- 【转】修改mysql数据库的用户名和密码
修改mysql数据库的用户名和密码 更改密码 mysql -u root -p Enter password:*** mysql>use mysql; 选择数据库 Database change ...
- Linux下修改MySQL数据库字符编码为UTF-8解决中文乱码
由于MySQL编码原因会导致数据库出现乱码. 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码. 具体操作: 1.进入MySQL控制台 &g ...
- 命令行修改MySQL数据库密码
通过MySQL命令行来修改MySQL数据库的密码,下面就为您详细介绍如何使用MySQL命令行来修改密码. 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1.给root加 ...
- 修改mysql数据库存储目录
使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装 ...
- 【mysql】修改mysql数据库密码
修改mysql数据库密码 操作系统:Linux centos7 数据库:mysql5.7 一.在已知MYSQL数据库的ROOT用户密码的情况下,修改密码 1.在Linux命令行,使用mysqladmi ...
- JAVA使用JDBC连接,修改MySQL数据库(比较乱)
原文地址1(连接MySQL图文) : http://www.cnblogs.com/GarfieldEr007/p/5746137.html 原文地址2 (修改MySQL图文): http://www ...
- Linux环境下修改MySQL数据库对表名大小写不敏感
Linux系统中MySQL对数据库名称和表名是大小写敏感的,这就导致了一些麻烦,虽然已经建立了表和数据,但因为大小写导致无法找到表. MySQL数据库对表名大小写不敏感的设置方法如下: 1.查看MyS ...
随机推荐
- Ubuntu 下查看CPU 信息命令
from: http://hi.baidu.com/hermitinhistory/blog/item/ce64d5fb6b23b71b6d22eb95.html 查看当前操作系统内核信息 uname ...
- 数据操纵DML
数据操纵DML 1. 在dept表中插入两行数据 (1)50,'IT','SHENYANG';(2)60,'HR','DALIAN'; 2. 设置保存点beforeup 3. 更新dept表,将60号 ...
- Windows五次Shift漏洞
本文首发于我的个人博客. 在小破站上看到了一个关于Windows五次shift的视频,觉得很有意思,就像拿来复现一下试试.原视频是在Window7虚拟机上进行的,由于现在基本上都已经用Win10了,我 ...
- Qt QString转char[]数组
Qt QString转char[]数组 QString s1="1234456";char str[20]={0};strcpy(str,s1.toStdString().c_st ...
- SpringBoot中加载XML配置
开篇 在SpringBoot中我们通常都是基于注解来开发的,实话说其实这个功能比较鸡肋,但是,SpringBoot中还是能做到的.所以用不用是一回事,会不会又是另外一回事. 涛锅锅在个人能力能掌握的范 ...
- Unity坑之 加了Rigidbody后主角反而朝天上飞?
今儿在做项目的时候,给主角加上一个Rigidbody组件,设置如下图: 然后问题来了,我本来是想让主角通过重力控制,掉到地上,但是加上之后,主角反而朝着天上飞! 这TM什么鬼? 经过多番探查,发现是A ...
- 初级知识点一——C#中的值类型与引用类型
从C#语言的定义中可以知道,C#支持两种值类型,分别是 值类型和引用类型,那么两者的区别到底在哪儿呢? 值类型特点: 1. 值类型包含 a 预定义的值类型 b 用户自定义的值类型(struct) 2. ...
- 发送信息到邮箱的第三方扩展库PHPMailer使用方法
一.下载 使用composer下载PHPMailer :composer require phpmailer/phpmailer 二.使用实例 use PHPMailer\PHPMailer\PHPM ...
- WinMTR 网络测试工具-九五小庞
WinMTR(建议优先使用) 百度下载工具 链接:https://pan.baidu.com/s/19ArKSTA2amsa4p6vHegDIQ 提取码:cy4y WinMTR是mtr工具在Windo ...
- Linux centos6.5 安装
本来打算玩 netty的 但是这个东西暂时也不用,而且我之前玩过mina就暂时不玩这个了,等以后有时间再玩,那玩啥呢?前几天和我们领导要了百度网盘会员,下了60G的大数据视屏,嘿嘿,有的玩了,今天开始 ...