首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 批量建立用戶與資料庫:SQL 腳本文件導入技巧

     編輯:MySQL 資料庫相關知識

核心技巧

將建庫、授權、刷新權限的 SQL 寫入文本文件,透過 MySQL 客戶端重定向輸入批量執行。

操作範例

1. 建立 SQL 腳本文件

# 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;

-- 更多用戶/資料庫,重複上述模式...

2. 執行腳本

/usr/local/mysql/bin/mysql -u root -p < mysqlusers.sql

輸入 Root 密碼後自動批量完成所有建庫授權操作。

關鍵點解析

  • GRANT ... IDENTIFIED BY:MySQL 5.7 前可同時建立用戶並授權;5.7+ 需先 CREATE USER 再 GRANT
  • FLUSH PRIVILEGES:每組操作後刷新權限快取,確保即時生效
  • @'localhost':限制本地連線;需遠程連線請用 @'%' 或具體 IP
  • 腳本文件編碼建議 UTF-8,避免中文註解亂碼

MySQL 5.7+ 兼容寫法

CREATE USER 'username1'@'localhost' IDENTIFIED BY 'password1';
GRANT ALL PRIVILEGES ON dataname1.* TO 'username1'@'localhost';
FLUSH PRIVILEGES;

進階:Shell 腳本動態生成

#!/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 流程中自動化資料庫準備

一個文件、一條命令,輕鬆完成數十上百組用戶與資料庫的建立授權。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved