MySQL資料庫重新命名的快速且安全方法(3種)
MySQL資料庫重新命名的方法
Innodb引擎的表如何改資料庫名,MyISAM引擎又該如何操作。
如果表是MyISAM引擎可以直接去到資料庫目錄mv重新命名資料夾就可以。 Innodb完全不行,會提示相關表不存在。
第一種方法:rename database 棄用了
RENAME database old_db_name TO new_db_name
這個是5.1.7到5.1.23版本可以用的,但是官方不推薦,會有丟失資料的危險
第二種方法:mysqldump 備份
1.建立需要改成新名的資料庫。
2.mysqldum 匯出要改名的資料庫
3.刪除原來的舊庫(確定是否真的需要)
當然這種方法雖然安全,但是如果資料量大,會比較耗時
mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.SQL #備份 mysqldump -uroot -p123456 -h127.0.0.1 test > test.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”
第三種方法:快速且安全 遍歷 rename table
我這裡就用一個指令碼,很簡單,相信大家都看的懂
#!/bin/bash # 假設將db_name資料庫名改為new_db_name # MyISAM直接更改資料庫目錄下的檔案即可 mysql_login=mysql -uroot -p123456 olddb=”db_name” newdb=”new_db_name” #$mysql_login -e “CREATE DATABASE $newdb $mysql_login -e 'create database if not exists $newdb' list_table=$($mysql_login -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='$olddb'") for table in $list_table; do $mysql_login -e "rename table $olddb.$table to $newdb.$table" done; #$mysqlconn -e “DROP DATABASE $olddb”
這裡用到了rename table,改表名的命令,但是如果新表名後面加資料庫名,就會將老資料庫的表移動到新的資料庫,所以,這種方法即安全,又快速。
最後附rename用法
命令:rename table 原表名 to 新表名;
例如:在表MyClass名字更改為YouClass
mysql> rename table MyClass to YouClass;
當你執行 RENAME 時,你不能有任何鎖定的表或活動的事務。你同樣也必須有對原初表的 ALTER 和 DROP 許可權,以及對新表的 CREATE 和 INSERT 許可權。
如果在多表更名中,MySQL 遭遇到任何錯誤,它將對所有被更名的表進行倒退更名,將每件事物退回到最初狀態。
Mysql:使用Navicat實現定時備份
一、功能描述
需實現每天將資料庫中資料備份,若出現問可及時還原備份;
二、實現步驟
開啟navicat點選計劃
點選新建批處理作業
選擇要備份的資料庫
點選選擇並儲存
點選上方工具條中設定計劃任務
點選計劃,點選新建,設定執行的時間
設定成功,資料預設備份在C:\Users\Administrator\Documents\Navicat\MySQL\servers中;
在navicat中點選備份也可看到,點選選中備份檔案即可還原備份;
認備份在C:\Users\Administrator\Documents\Navicat\MySQL\servers中;
在navicat中點選備份也可看到,點選選中備份檔案即可還原備份;
到此這篇關於MySQL資料庫重新命名的快速且安全方法(3種)的文章就介紹到這了,更多相關MySQL資料庫重新命名內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!