如何使用命令修改MySQL数据库名?
展开全部
今天接到宇航同学的问题,他们老大要求更改数据库名称,居然是为了数据库安全???我靠!真强的想法啊。因为他们的数据库是采用的INNODB存储引擎,不能直接修改数据库的名称,所以现转换成MyISAM存储引擎在修改表名在转换成INNODB存储引擎就好了,虽然过程比较麻烦,不如修改表名那样容易,但是能修改就偷笑吧。我个人认为数据库的名称属于数据库设计范畴,应该遵守设计规范,不能随便的修改名称。第一次听说为了安全修改数据库名,实在是不可取。修改名称详细步骤(因为不仅仅是上面那几步)mysql> use dinghao;mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 刘德华 | +——+———–+1 row in set (0.00 sec)mysql> show create table t1;+——-+————————————————————————————————————————-+| Table | Create Table |+——-+————————————————————————————————————————-+| t1 | CREATE TABLE `t1` (`id` int(11) DEFAULT NULL,`name` varchar(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +——-+————————————————————————————————————————-+1 row in set (0.00 sec)mysql> flush tables;Query OK, 0 rows affected (0.00 sec)mysql> flush logs;Query OK, 0 rows affected (0.00 sec)mysql> show processlist; #这一步主要查看有没有其他进程连接,要保证没有其他程序操作数据库。+—-+——+———–+———+———+——-+——-+——————+| Id | User | Host | db | Command | Time | State | Info |+—-+——+———–+———+———+——-+——-+——————+| 17 | root | localhost | dinghao | Query | 0 | NULL | show processlist | +—-+——+———–+———+———+——-+——-+——————+1 rows in set (0.00 sec)mysql> alter table t1 engine=MyISAM;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> exit[root@mysqludf var]# mv dinghao aaa;mysql> use aaa;Database changedmysql> alter table t1 engine=INNODB;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> select * from t1;+——+———–+| id | name |+——+———–+| 1 | 刘德华 | 站长教学网 eduyo.com+——+———–+1 row in set (0.00 sec)注意,在改名之前必须现转换存储引擎,否则会报错,你想换的这个名称就换不成了,只能换另外一个名称了。错误的方法就不演示了,光记住好的就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询