MySQL/Databases manipulation

創建 編輯

 CREATE DATABASE database;

需要特權。

mysqladmin create是該函數的命令行包裝器。

MySQL中, CREATE SCHEMA同義於CREATE DATABASE

刪除 編輯

 DROP DATABASE database;

需要特權。

mysqladmin drop是該函數的命令行包裝器。命令行選項-f抑制交互式確認,用於無人在場的腳本。

更名 編輯

SQL語言現在不能直接做資料庫更名。[1].

替代方法:

 mysqladmin create name2
 mysqldump --opt name1 | mysql name2
 mysqladmin drop -f name1

或者文件夾直接更名:

 cd /var/lib/mysql/
 /etc/init.d/mysql stop
 mv name1/ name2/
 /etc/init.d/mysql start

還需要更新特權的授權:

 UPDATE mysql.db SET `Db`='name2' WHERE `Db`='name1';
 FLUSH PRIVILEGES;

複製 編輯

MySQL沒有直接做資料庫複製的語句。

mysqldump 編輯

mysqldump命令行產生一個文件資料庫拷貝。可重注入其他資料庫。

# First, clean-up the target database:
 mysqladmin drop -f base2
 mysqladmin create base2
# Copy base1 to base2:
 mysqldump --opt base1 | mysql base2

備份 編輯

在Linux上每天午夜自動備份:[2]

 $ crontab -e
0 0 * * * /usr/local/bin/mysqldump -uLOGIN -PPORT -hHOST -pPASS base1 | gzip -c > `date “+\%Y-\%m-\%d”`.gz

恢復 編輯

mysql -h localhost -u root MaBase < MaBase.sql 

從其他資料庫遷移 編輯

Template:...

工具: MySQL Migration Toolkit

數據建模工具 編輯

  • MySQL Query Browser包含 MySQL Table Editor 模塊
  • Kexi (wikipedia: Kexi)


MySQL Workbench 編輯

參考文獻 編輯

  1. https://dev.mysql.com/doc/refman/5.1/en/rename-database.html
  2. http://stackoverflow.com/questions/6645818/how-to-automate-database-backup-using-phpmyadmin