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