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

MySQL 命令列管理實戰指南:安裝、帳號權限、常用操作與腳本化

     編輯:MySQL 資料庫相關知識

環境準備

  • Windows:net start mysql 啟動服務;mysql -u root -p 登入。
  • Linux:systemctl start mysqld 或 /etc/init.d/mysqld start;需 root 權限。

安全初始化(必做)

mysql -u root -p
-- 進入後
USE mysql;
DELETE FROM user WHERE User = '';                 -- 移除匿名帳號
UPDATE user SET authentication_string=PASSWORD('NewPass') WHERE User='root';
FLUSH PRIVILEGES;

MySQL 5.7+ 欄位為 authentication_string,8.0 建議用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass';。

限制登入主機

UPDATE user SET Host='192.168.1.%' WHERE User='root';
FLUSH PRIVILEGES;

或建立新帳號時指定:CREATE USER 'app'@'10.0.0.%' IDENTIFIED BY 'pass';。

登入常用參數

指令說明
mysql -u root -p提示輸入密碼
mysql -u root -pPassWord直接帶密碼(不安全,歷史會記錄)
mysql -h 192.168.1.10 -u app -p遠程連線
mysql db_name -u user -p直接選擇資料庫

建議:不要在應用程式使用 root

依最小權限原則建立專用帳號:

-- 僅需讀寫特定庫
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'10.0.0.%' IDENTIFIED BY 'strong_pass';

-- 僅需讀取報表
GRANT SELECT ON report_db.* TO 'readonly'@'%' IDENTIFIED BY 'pass';

-- 賦予權限轉授能力
GRANT ALL ON mydb.* TO 'admin'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;

權限代碼對照

權限說明
FILE伺服器上讀寫檔案
PROCESS查看/終止他人執行緒
RELOAD重載權限表、刷新日誌
SHUTDOWN關閉 MySQL 服務
ALTER修改表結構
CREATE建立庫/表
DROP刪除表/庫
INDEX建立/刪除索引
SELECT/INSERT/UPDATE/DELETE資料增刪改查
ALL所有權限(相當 root)
USAGE僅允許登入,無其他權限

實戰示範:建庫、建表、授權、匯入腳本

mysql -u root -p
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
  id INT(3) AUTO_INCREMENT PRIMARY KEY,
  name CHAR(10) NOT NULL,
  address VARCHAR(50) DEFAULT '深圳',
  hire_date DATE
);
GRANT ALL ON school.* TO 'teacher_admin'@'localhost' IDENTIFIED BY 'pass';
EXIT;

# 匯入資料腳本
mysql -u root -p school < school_data.sql

文字檔匯入(LOAD DATA)

# 檔案格式:欄位用 Tab 分隔,NULL 用 \N
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE teacher
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

常用管理指令速查

指令功能
SHOW DATABASES;列出所有資料庫
SHOW TABLES;列出當前庫資料表
DESC table_name;顯示表結構
SHOW CREATE TABLE t;顯示建表 SQL
SHOW PROCESSLIST;查看當前連線/查詢
KILL 123;終止執行緒 ID
FLUSH PRIVILEGES;重載權限
FLUSH LOGS;切換日誌檔案
SET GLOBAL max_connections=500;動態調整參數

腳本化執行

  • 互動模式:mysql> SOURCE /path/script.sql;
  • 非互動:mysql -u user -p db < script.sql
  • 單條指令:mysql -u user -p -e "SELECT * FROM t;"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved