mysql修改数据库名

1、rename database old_db to new_db:

mysql>rename database db1 to db2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database db1 to db2' at line 1

注:这种方法会有丢失数据的危险,这条sql在MySQL 5.1.7的时候被添加进来,5.1.23的时候又被去掉

2、myisam:

1.1、MYISAM引擎把库名字对应的文件夹名改了

1.2、关闭mysqld

1.3、把data目录中的db_name目录重命名为new_db_name

1.4、打开mysqld

3、innodb:

3.1 按新名字建立一个数据库

3.2 删除原有库中所有表上的触发器

3.3 使用rename table命令将表从原数据库复制到新数据库

3.4 在新数据库上重新创建2.2中被删除的触发器

3.5 在新数据库上重新创建存储过程、自定义函数、Events等

rename table命令语法:

rename table old_db.table1 TO new_db.table1,old_db.table2 TO new_db.table2;

这种方法,如果表很多那就尴尬了,对于表很多的,可以使用以下脚本:

source /etc/profile        #加载系统环境变量
source ~/.bash_profile    #加载用户环境变量
set -o nounset             #引用未初始化变量时退出

mysqlconn="mysql -h localhost -uroot -p123456"

#需要修改的数据库名
olddb="test1"
#修改后的数据库名
newdb="test2"

#创建新数据库
$mysqlconn -e "drop database if exists ${newdb};create database ${newdb};"

#获取所有表名
tables=$($mysqlconn -N -e "select table_name from information_schema.tables where table_schema='${olddb}'")

#修改表名
for name in $tables;do
    $mysqlconn -e "rename table ${olddb}.${name} to ${newdb}.${name}"
done

#删除老的空库
#$mysqlconn -e "drop database ${olddb}"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL修改数据库称比较麻烦,不支持直接修改,需要通过其他方式间接达到修改数据库称的目的。在MySQL 5.1.23之前的旧版本中,可以使用RENAME DATABASE来重命数据库,但此后版本因为安全考虑,删除了这一条命令。有两种常用的方法来修改数据库称。 方法一是先导出数据,再导入数据。首先,使用mysqldump命令导出原数据库的数据到一个SQL文件中,例如"old_db.sql"。然后,创建一个新的数据库,例如"new_db"。最后,使用mysql命令将导出的SQL文件导入到新的数据库中,命令如下:mysql -uroot -p123456 new_db < /tmp/old_db.sql。这样就完成了将数据从旧数据库迁移到新数据库的操作,间接实现了修改数据库称的目的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [如何修改MySQL数据库称](https://blog.csdn.net/C_ailinlin/article/details/120363188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mysql数据库的3种方法](https://blog.csdn.net/weixin_45299811/article/details/125003332)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值