mysql如何更改数据库名(一键实现mysql改数据库名)
由于某种原因,有时我们有可能需要数据库的名称,但是不像官方有rename可以去更改表名,并没有一个命令可以去更新数据库的名字。
思路:借助rename这个命令
基本操作:rename olddb.tables to newdb.tables
但是这个命令碰到视图会出错,也不能把旧库中的函数,存储过程,事件移过来,对于这一些,我们可以从旧库中导出这些定义,再导入到新库中。我们不可能一个个去改,得借助脚本。
脚本实现的逻辑思路:
1.查看要改的新旧库是否存在,来判断是否需要进一步处理
2.先用rename把所有的表移到新命名的库中
3.导出旧库中的视图,函数,存储过程,事件。
4.导入新库中
5.删除旧库
这个方法把全部数据导出再导入来得更快。
完整的脚本如下(操作前请作好备份):
[chenzejin@localhost sh_script]$ cat mysql_rename_database.sh
#!/bin/bash #script_name: mysql_rename_database.sh
MYSQL_USER='root'
MYSQL_PASSWD='123'
MYSQL_BIN='/usr/local/mysql/bin'
HOSTS=127.0.0.1
PORT=
if [ $# -ne ];
then
echo "usage:./mysql_rename_database.sh oldDB newDB"
exit
fi
user_identify=" -h$HOSTS -P$PORT -u$MYSQL_USER -p$MYSQL_PASSWD " oldDB_exist=`$MYSQL_BIN/mysql $user_identify -ss -e " select schema_name from information_schema.schemata where schema_name=""'"$"'" `
newDB_exist=`$MYSQL_BIN/mysql $user_identify -ss -e " select schema_name from information_schema.schemata where schema_name=""'"$"'" ` if [ -z "$oldDB_exist" -o -n "$newDB_exist" ];
then
echo "Database $1 does not exist or Database $2 exist ,please confirm! "
exit
fi #dump all views
DUMPTIME=`date +%Y%m%d_%H%M%S`
list_views=$($MYSQL_BIN/mysql $user_identify -Nse "select table_name from information_schema.TABLES where table_type='view' and TABLE_SCHEMA=""'"$"'") for view in $list_views
do
$MYSQL_BIN/mysqldump $user_identify --no-create-db --no-data $ $view >> all_views_DB_$1_$DUMPTIME.sql
done #dump function ,triger ,events
$MYSQL_BIN/mysqldump -F -R -E $user_identify --no-create-db --no-create-info --no-data $ >> all_views_DB_$1_$DUMPTIME.sql #create new databases;
$MYSQL_BIN/mysql $user_identify -e "create database $2"
list_table=$($MYSQL_BIN/mysql $user_identify -Nse "select table_name from information_schema.TABLES where table_type='base table' and TABLE_SCHEMA=""'"$"'") for table in $list_table
do
$MYSQL_BIN/mysql $user_identify -e "rename table $1.$table to $2.$table"
done #import views,function ,triger ,events
$MYSQL_BIN/mysql $user_identify $ < all_views_DB_$1_$DUMPTIME.sql #remove old database
$MYSQL_BIN/mysql $user_identify -e "drop database $1"
mysql如何更改数据库名(一键实现mysql改数据库名)的更多相关文章
- eclipse 改包名
转载自: http://www.2cto.com/kf/201304/206747.html 1.在项目上右键,选择android tools->rename application packa ...
- [功能集锦] 003 - 一键生成mysql数据字典/数据库速查表
写在前面: 因为工作时候经常遇到半路接手项目的情况,由于年代久远,数据库字典这块经常缺失.故写此篇,以便复用,也希望对大家有点帮助. 随笔内容不高级,如有不妥,不吝指正. ps:有另一篇详细随笔可以参 ...
- Rehat一键安装mysql脚本和备份数据库脚本
Rehat一键安装mysql脚本 ##说明:适用,Rehat 5 6 7 1.运行状态,运行成功输出mysql临时密码 2.代码如下 #!/bin/bash #获取系统信息 sudo cat /etc ...
- 数据库SQL语法到MySQL实操
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份sql server--- 创建 ...
- 【转】如何将MySQL数据目录更改为CentOS 7上的新位置
本文转载自:http://www.leftso.com/blog/362.html 介绍 数据库随着时间的推移而增长,有时超过了文件系统的空间.当它们与操作系统的其他部分位于同一分区上时,也可能遇到I ...
- mysql改数据库名称
第一种方法: 1.创建需要改成新名的数据库.2.mysqldum 导出要改名的数据库3.删除原来的旧库(确定是否真的需要)当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有想 ...
- 一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)
一.初识MySQL数据库 ###<1>数据库概述 1. 数据库 长期存储在计算机内的,由组织的可共享的数据集合 存储数据的仓库 文件 ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
- 数据库操作----找了MySQL和SQL Sever两个的基础语句
这是MySQL的基本操作: 1 登入数据库:mysql -uroot -p+密码 (SQL Sever登入: osql -U 用户名 -P 密码) 显示已存在的数据库:show databases; ...
随机推荐
- HTTP基本认证(Basic Authentication)的JAVA示例
大家在登录网站的时候,大部分时候是通过一个表单提交登录信息.但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证.下面来看看一看这个认证的工作过程:第一步: 客户端发送ht ...
- IT技术团队行而有效的管理之道
在博客园看到的一份读书笔记,如果日后有机会去管理一个技术团队,那么下面这些经验可能会让你更好地实施工作. IT技术团队员工的特点 高学历,知识密集型,技术立身. 人际关系简单,摩擦大多数由技术产生,相 ...
- Ubunbu新建的用户使用SecureCrt无法Table补全、无法高亮
Check 两个地方: 1. 确保/etc/passwd中配置有/bin/bash (这个是用来控制补全). 2. 在~/.bashrc中配置, export TERM=linux (这个是用来控制 ...
- mac os x 安装mysql遇到 Access denied for user 'root'@'localhost' (using password: YES)的解决方法
最近把开发环境迁移到macbook上,装上mysql启动之后,连接,总是报这个错误.5.5的版本默认密码为空.其实这个错误是root未授权的问题.解决方法如下: 未给localhost root用户授 ...
- windows原生开发之界面疑云
windows桌面开发,界面始终是最大的困惑.我们对前端工具的要求,其实只有窗体设计器.消息映射,过分点的话自适应屏幕.模型绑定.能够免于手工书写,其实这个问题并不复杂,但VS不实现.QT语法 ...
- Reflector反编译.NET文件后修复【转】
反编译后的工程文件用VS2010打开后,在打开窗体时会出现一系列错误提示: 第一种情况: “设计器无法处理第 152 行的代码: base.AutoScaleMode = AutoScaleMode. ...
- Filter之——GZIP全站压缩
GZIP压缩:将压缩后的文本文件,发送给浏览器,减少流量. 一.进行gzip压缩条件: 1.请求头:Accept-Encoding : gzip 告诉服务器,该浏览器支持gzip压缩. 2.响应头: ...
- SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7
Q:bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7 A: svnadmin recover /var/wh ...
- CSS 会被继承的属性
文本 color(颜色,a元素除外) direction(方向) font(字体) font-family(字体系列) font-size(字体大小) font-style(用于设置斜体) font- ...
- 使用sp_addextendedproperty添加描述信息
-- For table EXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N' ...