如何使用命令修改MySQL数据库名?

今天收到雨涵同学的提问。
他们的老板要求他们更改数据库的名称。
这是为了数据库安全吗碉堡了!多么强大的想法啊。
由于他们的数据库使用的是INNODB存储引擎,所以数据库名不能直接更改,所以现在转换为MyISAM存储引擎,然后更改表名,然后转换为INNODB存储引擎。
虽然这个过程还不止这些。
麻烦了,不是改表名那么简单,不过如果能改,那就笑一笑吧。
我个人认为,数据库的名称属于数据库设计的范畴,应该在项目的规范范围内,不能随意更改。
这是我第一次听说出于安全原因不建议更改数据库名称。
更改名称详细步骤(因为不只是上面的步骤)mysql>usinghao;mysql>select*fromt1;+——+————–+|id|name|+——+————–+|1|刘德华|+——+————–+1rowinset(0.00sec)mysql>showcreatetablet1;+——-+——————————————————————————————————————+|表格|+——-+—————————————————————————————————————————+|t1|CREATETABLE`t1`(`id`int(11)DEFAULTNULL,`name`varchar(20)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8|+——-+————————————————————————————————————————-+1rowinset(0.00sec)mysql>flushtables;QueryOK,0rowsaffected(0.00sec)mysql>flushlogs;QueryOK,0rowsaffected(0.00sec)mysql>showprocesslist;#此步骤主要检查其他进程是否已连接,并确保数据库上没有其他程序正在运行。
+——-+——+————–+————+————+——-+——-+————+|Id|用户|主机|db|命令|时间|状态|信息|+——-+——+————–+————+————+——-+——-+——————+|17|root|localhost|dinghao|query|0|showprocesslist|+——-+——+————–+————+————+——-+——-+————+1rowsinset(0.00秒)mysql>altertablet1engine=MyISAM;QueryOK,1行受影响(0.01秒)记录:1重复:0警告gs:0mysql>exit[root@mysqludfvar]#mvdinghaoaaa;mysql>useaaa;Databasechangedmysql>altertablet1engine=INNODB;QueryOK,1rowaffected(0.00sec)Records:1Duplicates:0Warnings:0mysql>select*fromt1;+——+————–+|id|name|+——+————–+|1|AndyLau|站长教育网eduyo.com+——+————–+1rowinset(0.00sec)注意,更改名称之前必须转换存储引擎,否则会抛出错误消息。
那个名字你想改,是不可能改的,只能改成别的名字。
我不会演示错误的方法,只记住好的方法。

如何修改MySQL数据库名称

修改MySQL数据库名称的方法如下:

1.语句修改方法:

RENAMEDATABASEdb_nameTOnew_db_name语法在mysql5.1.7中添加,在5.1.23中删除。

2.如果所有表都是MyISAM类型,可以更改文件夹名称,将数据目录下的db_name目录重命名为new_db_name

3.重命名所有表格代码如下:

4.mysqldump导出数据然后导入

代码如下:

5.使用shell脚本重命名所有Table

代码如下: