在MySQL手冊的MySQL涵蓋這一點。 php
一般我只是轉儲數據庫並使用新名稱從新導入它。 對於很是大的數據庫,這不是一個選項。 顯然是RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
RENAME {DATABASE | SCHEMA} db_name TO new_db_name;
作壞事,只存在於少數幾個版本中,整體上是一個壞主意 。 html
這須要與InnoDB一塊兒使用, InnoDB的存儲方式與MyISAM徹底不一樣。 mysql
使用如下幾個簡單的命令: sql
mysqldump -u username -p -v olddatabase > olddbdump.sql mysqladmin -u username -p create newdatabase mysql -u username -p newdatabase < olddbdump.sql
或者根據@Pablo Marin-Garcia的建議減小I / O使用: shell
mysqladmin -u username -p create newdatabase mysqldump -u username -v olddatabase -p | mysql -u username -p -D newdatabase
在MySQL中模擬丟失的RENAME DATABASE
命令: 數據庫
使用如下命令建立重命名查詢: bash
SELECT CONCAT('RENAME TABLE ',table_schema,'.',table_name, ' TO ','new_schema.',table_name,';') FROM information_schema.TABLES WHERE table_schema LIKE 'old_schema';
運行該輸出 spa
它取自MySQL中的Emulating The Missing RENAME DATABASE命令 。 .net
對於那些Mac用戶,Sequel Pro在Database菜單中有一個Rename Database選項。 http://www.sequelpro.com/ code
您能夠使用此shell腳本:
參考: 如何重命名MySQL數據庫?
#!/bin/bash set -e # terminate execution on command failure mysqlconn="mysql -u root -proot" 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"
它的工做原理是:
$ sh rename_database.sh oldname newname
最簡單的方法是使用HeidiSQL軟件。 它是免費和開源的。 它能夠在Windows和任何帶有Wine的 Linux上運行(在Linux,BSD,Solaris和Mac OS X上運行Windows應用程序)。
要下載HeidiSQL,請轉到http://www.heidisql.com/download.php 。
要下載Wine,請轉到http://www.winehq.org/ 。
要在HeidiSQL中重命名數據庫,只需右鍵單擊數據庫名稱並選擇「編輯」。 而後輸入新名稱並按「肯定」。
這很簡單。