大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前不久去面试,被问到Innodb引擎的表如何改数据库名,当时我也只回答了MyISAM改如何操作,被一些细节问题打败,真是操蛋。
创新互联建站主营榆社网站建设的网络公司,主营网站建设方案,app软件开发公司,榆社h5微信小程序开发搭建,榆社网站营销推广欢迎榆社等地区企业咨询如果表示MyISAM那么可以直接去到数据库目录mv就可以。
Innodb完全不行,自己测试过,会提示相关表不存在。
第一种方法:
RENAME database olddbname TO newdbname这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险
第二种方法:
1.创建需要改成新名的数据库。
2.mysqldum 导出要改名的数据库
3.删除原来的旧库(确定是否真的需要)
当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有想到,真有想死的冲动。
第三种方法:
我这里就用一个脚本,很简单,相信大家都看的懂
复制代码
#!/bin/bash # 假设将sakila数据库名改为new_sakila # MyISAM直接更改数据库目录下的文件即可 mysql -uroot -p123456 -e 'create database if not exists new_sakila' list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='sakila'") for table in $list_table do mysql -uroot -p123456 -e "rename table sakila.$table to new_sakila.$table" done这里用到了rename table,改表名的命令,但是如果新表名后面加数据库名,就会将老数据库的表移动到新的数据库,所以,这种方法即安全,又快速。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。