zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

安全快速修改Mysql数据库名的5种方法

2023-06-13 09:15:25 时间

1.RENAMEDATABASEdb_nameTOnew_db_name

这个。。这个语法在mysql5.1.7中被添加进来,到了5.1.23又去掉了。
据说有可能丢失数据。还是不要用的好。
详见:http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

2.如果所有表都是MyISAM类型的话,可以改文件夹的名字
关闭mysqld
把data目录中的db_name目录重命名为new_db_name
开启mysqld

3.重命名所有的表

复制代码代码如下:

CREATEDATABASEnew_db_name;
RENAMETABLEdb_name.table1TOnew_db_name.table1,
db_name.table2TOnew_db_name.table2;
DROPDATABASEdb_name;

4.mysqldump导出数据再导入

复制代码代码如下:

mysqldump-uxxxx-pxxxx-hxxxxdb_name>db_name_dump.SQL
mysql-uxxxx-pxxxx-hxxxx-e“CREATEDATABASEnew_db_name”
mysql-uxxxx-pxxxx-hxxxxnew_db_name<db_name_dump.SQL
mysql-uxxxx-pxxxx-hxxxx-e“DROPDATABASEdb_name”

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

复制代码代码如下:#!/bin/bash

mysqlconn=”mysql-uxxxx-pxxxx-S/var/lib/mysql/mysql.sock-hlocalhost”
olddb=”db_name”
newdb=”new_db_name”

#$mysqlconn-e“CREATEDATABASE$newdb”
params=$($mysqlconn-N-e“SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHEREtable_schema="$olddb"”)

fornamein$params;do
$mysqlconn-e“RENAMETABLE$olddb.$nameto$newdb.$name”;
done;

#$mysqlconn-e“DROPDATABASE$olddb”

就是方法3的优化版。

小编注:以上这些操作都是危险的,所以请在执行操作前,备份你的数据库!!