今天接到需求说需要把MySQL 5.7数据库的名字从A改为B,查了下A数据库下有不到200张表,也不是很大,要是用导入导出也可以,就是还是会慢,时间宝贵啊,用的时间越少越好。
有个rename table命令,写个脚本主要用它来实现需求
- # ! / bin / bash
- #先判断新数据库是否存在,要是不存在就创建。
- #列出老数据库下都有那些表 , 其中N和s参数起到的作用是格式化,有点类似于Oracle下sqlplus里的pagesize
- #用for循环来rename。
- mysql -uroot -pxxxxDB2017# -e 'create database if not exists cus_0042'
- list_table = $ ( mysql -uroot -pxxxxDB2017# -Nse " select table_name from information_schema . TABLES where TABLE_SCHEMA = 'old_databases' " )
- for table in $list_table
- do
- mysql -uroot -pxxxxDB2017# -e " rename table old_databases . $ table to cus_0042 . $ table "
- done
执行成功后,old_databases下就空了,可是删除了。
假如是myisam的存储引擎,直接在数据目录下mv就行。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-11/148725.htm
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。