將建庫、授權、刷新權限的 SQL 寫入文本文件,透過 MySQL 客戶端重定向輸入批量執行。
# vi mysqlusers.sql CREATE DATABASE dataname1; GRANT ALL PRIVILEGES ON dataname1.* TO 'username1'@'localhost' IDENTIFIED BY 'password1'; FLUSH PRIVILEGES; CREATE DATABASE dataname2; GRANT ALL PRIVILEGES ON dataname2.* TO 'username2'@'localhost' IDENTIFIED BY 'password2'; FLUSH PRIVILEGES; -- 更多用戶/資料庫,重複上述模式...
/usr/local/mysql/bin/mysql -u root -p < mysqlusers.sql
輸入 Root 密碼後自動批量完成所有建庫授權操作。
GRANT ... IDENTIFIED BY:MySQL 5.7 前可同時建立用戶並授權;5.7+ 需先 CREATE USER 再 GRANTFLUSH PRIVILEGES:每組操作後刷新權限快取,確保即時生效@'localhost':限制本地連線;需遠程連線請用 @'%' 或具體 IPCREATE USER 'username1'@'localhost' IDENTIFIED BY 'password1'; GRANT ALL PRIVILEGES ON dataname1.* TO 'username1'@'localhost'; FLUSH PRIVILEGES;
#!/bin/bash
# batch_create_users.sh
DB_PREFIX="app_"
USER_PREFIX="user_"
PASS_PREFIX="Pass"
for i in {1..20}; do
DB="${DB_PREFIX}${i}"
USER="${USER_PREFIX}${i}"
PASS="${PASS_PREFIX}${i}_$(openssl rand -hex 4)"
cat <
執行:bash batch_create_users.sh | mysql -u root -p
適用場景
- 多租戶 SaaS 系統初始化
- 開發/測試環境快速佈署
- 批量遷移用戶權限
- CI/CD 流程中自動化資料庫準備
一個文件、一條命令,輕鬆完成數十上百組用戶與資料庫的建立授權。