mysql5.7数据库改名

数据库版本是5.7.17

今天接到需求说需要把数据库的名字从A改为B,查了下A数据库下有不到200张表,也不是很大,要是用导入导出也可以,就是还是会慢,时间宝贵啊,用的时间越少越好。

有个rename table命令,写个脚本主要用它来实现需求

  1. #!/bin/bash
  2. #先判断新数据库是否存在,要是不存在就创建。
  3. #列出老数据库下都有那些表,其中N和s参数起到的作用是格式化,有点类似于Oraclesqlplus里的pagesize
  4. #用for循环来rename。
  5. mysql -uroot -pxxxxDB2017# -e ‘create database if not exists cus_0042′
  6. list_table=$(mysql -uroot -pxxxxDB2017# -Nse select table_name from information_schema.TABLES where TABLE_SCHEMA=‘old_databases’)
  7. for table in $list_table
  8. do
  9.     mysql -uroot -pxxxxDB2017# -e rename table old_databases.$table to cus_0042.$table
  10. done

执行成功后,old_databases下就空了,可是删除了。

假如是myisam的存储引擎,直接在数据目录下mv就行。

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » mysql5.7数据库改名

赞 (0)
分享到:更多 ()

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 云南普洱茶涨姿势了回复