MySQL: Как переименовать базу данных

С версии MySQL 5.1.23 операция "RENAME DATABASE" была удалена, поэтому быстро переименовать базу данных теперь нельзя.
Есть несколько вариантов решения:
1. Использовать дамп без "CREATE DATABASE"
mysqldump -u username -p -v olddatabase > dump.sql
mysqladmin -u username -p create newdatabase
mysql -u username -p newdatabase < dump.sql
2. Переименовать таблицы в БД
Можно использовать этот скрипт rename_db.sh:
#!/bin/bash
mysqlconn="mysql -uuser_name -ppassword -h server_ip_or_FQDN"
olddb=$1
newdb=$2
$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"
Выполнение: 
bash rename_db.sh oldname newname

Похожие новости

Комментариев 0