原因主要有下:1:通过rename database name to new_name可能会产生数据丢失的危险情况。
2:在这条命令在MySQL 5.1.7的时候被添加进来,5.1.23的时候又被去掉了,可能开发人员就是为了避免这一点吧。
目前主要方法有三种:
常见的主要有三种方法:
-
如果所有表都是MyISAM类型的话,可以直接修改文件夹的名字。
关闭mysql→把data目录中的db_name目录重命名为new_db_name→开启mysql -
新建数据库,在新的数据库里重命名所有旧数据库中的表,再删除旧的数据库。具体操作命令如下:创建新的数据库→重命名数据表名称→删除旧的数据库。
CREATE DATABASE new_db_name;
RENAME TABLE db_name.table1 TO new_db_name.table1,db_name.table2 TO new_db_name.table2;
DROP DATABASE db_name; -
利用mysqldump命令从旧的数据导出数据,再导入新数据库。具体操作命令如下:导出数据→创建新的数据库→导入数据→删除旧的数据库。
mysqldump -u root -p -h ip db_name > db_name_dump.SQL
mysql -u root -p -h ip -e “CREATE DATABASE new_db_name”
mysql -u root -p -h ip new_db_name < db_name_dump.SQL
mysql -u root -p -h ip -e “DROP DATABASE db_name”