彙整 DBA/開發高頻使用的 MySQL 管理指令,涵蓋服務控制、帳號權限、備份還原、DDL/DML 操作。
net start mysql / net stop mysql(服務名視安裝而定)。/etc/init.d/mysqld start|stop|restart。systemctl start|stop|restart mysqld。mysqld --user=mysql --console。mysql -u root
DELETE FROM mysql.user WHERE User=''; -- 刪除匿名用戶
UPDATE mysql.user SET authentication_string=PASSWORD('StrongPass') WHERE User='root';
FLUSH PRIVILEGES;
-- 建立用戶並授權(推薦 GRANT 隱含建立)
GRANT ALL ON mydb.* TO 'app_user'@'%' IDENTIFIED BY 'Pass123';
GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'readonly'@'%' IDENTIFIED BY 'Pass123';
GRANT UPDATE,DELETE ON mydb.test_tbl TO 'etl_user'@'%' IDENTIFIED BY 'Pass123';
-- 授予授權權限
GRANT ALL ON mydb.* TO 'admin'@'%' IDENTIFIED BY 'Pass123' WITH GRANT OPTION;
-- 回收權限
REVOKE DELETE ON mydb.* FROM 'app_user'@'%';
-- 刪除用戶
DROP USER 'old_user'@'%';
| 權限 | 說明 |
|---|---|
| FILE | 伺服器讀寫檔案(LOAD DATA INFILE、SELECT ... INTO OUTFILE) |
| PROCESS | 查看/殺死他人執行緒 |
| RELOAD | 刷新權限表、日誌輪轉 |
| SHUTDOWN | 關閉服務 |
| ALTER | 修改表結構 |
| CREATE | 建庫/建表 |
| DROP | 刪庫/刪表 |
| INDEX | 建/刪索引 |
| INSERT/SELECT/UPDATE/DELETE | 資料增查改刪 |
| ALL | 所有權限(等同 root) |
| USAGE | 僅允許登入,無任何操作權限 |
SHOW DATABASES;
CREATE DATABASE mydb;
USE mydb;
SHOW TABLES;
CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), sex CHAR(1));
DESCRIBE t;
DROP TABLE t;
DELETE FROM t; -- 清空資料保留結構
TRUNCATE TABLE t; -- 重設自增值、速度更快
-- 載入文字檔
LOAD DATA LOCAL INFILE 'D:/data.txt' INTO TABLE t;
-- 匯入 SQL 檔
mysql> USE mydb;
mysql> SOURCE d:/dump.sql;
-- 命令列匯出
mysqldump -u root -p mydb > dump.sql
mysqldump -u root -p mydb tbl1 tbl2 > dump.sql
INSERT INTO t (name, sex) VALUES ('Alice', 'F');
UPDATE t SET sex='M' WHERE name='Bob';
DELETE FROM t WHERE id=1;