我協調一些PHP開發項目。我已經建立了一個工作流程,開發人員可以使用一個Subversion版本庫。當他們準備看看他們的臨時服務器上傳MySQL數據庫轉儲和創建標籤應用。的MySQL DROP DATABASE相當於W/O root訪問權限或DROP權限
我已經配置了一個shell腳本,它會自動部署PHP代碼到的DocumentRoot並配置適當的權限。我現在需要腳本加載數據庫快照。
當我第一次配置新的應用程序創建一個數據庫和用戶帳戶,像這樣:
CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO [email protected] IDENTIFIED BY 'password';
現在,當開發人員檢查了MySQL的新版本轉儲到顛覆我需要刪除舊的數據庫和恢復一個新的快照。我目前正在使用以下工作流程。
1)登錄MySQL作爲根
DROP DATABASE foodb;
CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO [email protected] IDENTIFIED BY 'password';
2.)登錄到MySQL 「用戶1」
mysql -h localhost -u user1 --password="drumitFed" foodb << new-db-dump-from-subversion.sql
我想結合上述步驟1和2。我想它會看起來像這樣。該代碼不僅應該刪除表,還包括視圖,索引和存儲過程。
請注意,它必須作爲數據庫用戶而不是超級用戶運行,並且數據庫用戶沒有DROP DATABASE或CREATE DATABASE權限。
mysql -h localhost -u user1 --password="password" foodb << delete-all-tables-and-views.sql
mysql -h localhost -u user1 --password="password" foodb << new-db-dump-from-subversion.sql
MySQL的創建和刪除PRIVS上特定的數據庫也賦予該用戶刪除和重新創建數據庫本身的能力。所以你可以放心地給出這個,而不會影響DB之外的任何東西。 – gahooa 2009-12-20 19:57:05