如何快速重命名MySQL數據庫(更改模式名稱)?

在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


#1樓

使用如下幾個簡單的命令: 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

#2樓

在MySQL中模擬丟失的RENAME DATABASE命令: 數據庫

  1. 建立一個新數據庫
  2. 使用如下命令建立重命名查詢: bash

    SELECT CONCAT('RENAME TABLE ',table_schema,'.',table_name, ' TO ','new_schema.',table_name,';') FROM information_schema.TABLES WHERE table_schema LIKE 'old_schema';
  3. 運行該輸出 spa

  4. 刪除舊數據庫

它取自MySQL中的Emulating The Missing RENAME DATABASE命令.net


#3樓

對於那些Mac用戶,Sequel Pro在Database菜單中有一個Rename Database選項。 http://www.sequelpro.com/ code


#4樓

您能夠使用此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

#5樓

最簡單的方法是使用HeidiSQL軟件。 它是免費和開源的。 它能夠在Windows和任何帶有Wine的 Linux上運行(在Linux,BSD,Solaris和Mac OS X上運行Windows應用程序)。

要下載HeidiSQL,請轉到http://www.heidisql.com/download.php

要下載Wine,請轉到http://www.winehq.org/

要在HeidiSQL中重命名數據庫,只需右鍵單擊數據庫名稱並選擇「編輯」。 而後輸入新名稱並按「肯定」。

這很簡單。

相關文章
相關標籤/搜索