一、連線與服務管理
| 操作 | 指令範例 | 說明 |
| 本地連線 | mysql -u root -p | 輸入密碼後進入 mysql> 提示符 |
| 遠程連線 | mysql -h 110.110.110.110 -u root -p123 | -h 指定 IP,-p 緊接密碼(可加空格) |
| 啟動服務 | net start mysql | Windows 服務名稱通常為 mysql |
| 停止服務 | net stop mysql | |
| 查詢埠佔用 | netstat -na | findstr 3306 | 確認 3306 是否被監聽 |
| 離開 MySQL | exit 或 quit | |
二、修改密碼
# 為 root 設定初始密碼 ab12
mysqladmin -u root password ab12
# 將 root 密碼從 ab12 改為 djg345
mysqladmin -u root -p ab12 password djg345
三、建立使用者與授權(在 mysql> 環境下執行,以分號結尾)
-- 建立可從任意主機登入、擁有所有資料庫 CRUD 權限的 test1
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
-- 廃立僅限 localhost、僅操作 mydb 的 test2
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
-- 移除 test2 密碼
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
四、常用顯示與 DDL/DML 指令
| 功能 | 指令 |
| 顯示所有資料庫 | SHOW DATABASES; |
| 切換資料庫 | USE db_name; |
| 顯示資料表 | SHOW TABLES; |
| 檢視表結構 | DESCRIBE table_name; 或 DESC table_name; |
| 建立資料庫 | CREATE DATABASE db_name; |
| 建立資料表 | CREATE TABLE t (c1 VARCHAR(20), c2 CHAR(1)); |
| 刪除資料庫 | DROP DATABASE db_name; |
| 刪除資料表 | DROP TABLE table_name; |
| 清空資料表 | DELETE FROM table_name;(不重置 AUTO_INCREMENT)
TRUNCATE TABLE table_name;(重置自增 ID) |
| 查詢所有資料 | SELECT * FROM table_name; |
| 插入資料 | INSERT INTO table_name VALUES ('hyq','M'); |
| 更新資料 | UPDATE table_name SET c1='a', c2='b' WHERE c3='c'; |
| 匯入文字檔 | LOAD DATA LOCAL INFILE 'D:/mysql.txt' INTO TABLE table_name; |
| 匯入 .sql 檔 | USE db_name; SOURCE d:/mysql.sql; |
| 命令列改 root 密碼 | UPDATE mysql.user SET password=PASSWORD('新密碼') WHERE User='root'; FLUSH PRIVILEGES; |
| 顯示目前資料庫 | SELECT DATABASE(); |
| 顯示目前使用者 | SELECT USER(); |
五、實用技巧
- 密碼含特殊字元:建議用
-p 後空一格,再輸入密碼,避免 Shell 轉義問題。
- 批次匯出:
mysqldump -u root -p db_name > backup.sql
- 只匯出結構:
mysqldump -u root -p -d db_name > structure.sql