Five ways to safely and quickly modify the Mysql database name
- 2020-06-12 10:50:58
- OfStack
1. RENAME DATABASE db_name TO new_db_name
This.. This syntax was added in mysql 5.1.7 and removed in 5.1.23.
The possibility of data loss is said to be possible. It's better not to use it.
See: http: / / dev. mysql. com/doc refman / 5.1 / en/rename - database. html
2. If all the tables are of type MyISAM, you can change the folder name
Close the mysqld
Rename the db_name directory in the data directory to new_db_name
Open mysqld
3. Rename all tables
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;
4. mysqldump exports data and imports it
mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.SQL
mysql -uxxxx -pxxxx -h xxxx -e " CREATE DATABASE new_db_name "
mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.SQL
mysql -uxxxx -pxxxx -h xxxx -e " DROP DATABASE db_name "
5. Rename all tables using the shell script
#!/bin/bash
mysqlconn= " mysql -u xxxx -pxxxx -S /var/lib/mysql/mysql.sock -h localhost "
olddb= " db_name "
newdb= " new_db_name "
#$mysqlconn -e " CREATE DATABASE $newdb "
params=$($mysqlconn -N -e " SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE table_schema='$olddb' " )
for name in $params; do
$mysqlconn -e " RENAME TABLE $olddb.$name to $newdb.$name " ;
done;
#$mysqlconn -e " DROP DATABASE $olddb "
It's an optimized version of method 3.
Note: These actions are dangerous, so back up your database before performing them!!