本文彙整 MySQL 日常運維最常用的指令集,涵蓋客戶端連線、密碼變更、使用者管理、資料庫/資料表操作、資料匯入匯出與備份,適合新手快速上手與資深工程師備查。
# 連線本機(預設 root 無密碼)
mysql -u root -p
# 連線遠端主機
mysql -h 110.110.110.110 -u root -pabcd123
# 退出
exit
提示: -p 後直接接密碼無空格(不安全,建議只輸 -p 讓終端機提示輸入)。
# 首次給 root 設密碼
mysqladmin -u root password 'newpass'
# 變更現有密碼
mysqladmin -u root -p'oldpass' password 'newpass'
注意: 以下指令在 mysql> 提示符下執行,以分號結束。
-- 全權限、任意主機(高風險,僅測試用)
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
-- 僅本機、特定資料庫(生產建議)
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
-- 移除密碼
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
SHOW DATABASES;
USE mysql;
SHOW TABLES;
DESCRIBE table_name; -- 或 DESC table_name
CREATE DATABASE db_name;
DROP DATABASE db_name;
CREATE TABLE table_name (col_def_list);
DROP TABLE table_name;
-- 清空表
DELETE FROM table_name;
-- 查詢所有
SELECT * FROM table_name;
DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(10) NOT NULL,
address VARCHAR(50) DEFAULT '深圳',
`year` DATE
);
INSERT INTO teacher VALUES ('', 'glchengang', '深圳一中', '1976-10-10');
INSERT INTO teacher VALUES ('', 'jack', '深圳一中', '1975-12-23');
批次執行: 存為 school.sql,命令列執行:
mysql -u root -p < c:\school.sql
Tab 分隔\N 表示3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
USE target_db;
LOAD DATA LOCAL INFILE 'filename' INTO TABLE table_name;
建議: 將檔案放置 mysql\bin 目錄下。
# 備份(產生 SQL 腳本檔)
mysqldump --opt school > school.bbb
# 還原
mysqladmin create school
mysql school < school.bbb
school.bbb 為純文字 SQL 檔,可直接編輯或版本控制。
MySQL 操作與標準 SQL 高度一致,熟悉上述指令即可應付 90% 日常運維場景。進階學習建議參考官方中文參考手冊(晏子譯本),涵蓋交易、預存程序、觸發器、複寫等企業級特性。