整理 MySQL 日常運維最常用的命令列指令,涵蓋服務啟停、登入、帳號管理、資料庫/資料表操作、資料匯入匯出,適合貼在工位牆上隨時查閱。
# Windows net stop mysql net start mysql # Linux (Systemd) systemctl stop mysqld systemctl start mysqld systemctl restart mysqld # Linux (SysVinit) service mysqld stop service mysqld start service mysqld restart
# 本地登入 mysql -u root -p # 指定主機/端口 mysql -h 192.168.1.10 -P 3306 -u root -p # 直接帶密碼(不安全,僅腳本使用) mysql -u root -p'password'
-- 建立帳號並授權(全庫讀寫) CREATE USER 'app'@'%' IDENTIFIED BY 'Pass123!'; GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%'; FLUSH PRIVILEGES; -- 修改密碼 (MySQL 5.7+) ALTER USER 'app'@'%' IDENTIFIED BY 'NewPass456!'; -- 刪除帳號 DROP USER 'app'@'%'; -- 查看權限 SHOW GRANTS FOR 'app'@'%';
-- 顯示資料庫 SHOW DATABASES; -- 切換資料庫 USE mydb; -- 顯示資料表 SHOW TABLES; -- 查看表結構 DESCRIBE tbl_name; SHOW CREATE TABLE tbl_name\G -- 建立/刪除資料庫 CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; DROP DATABASE mydb; -- 建立/刪除資料表 CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50)); DROP TABLE t; -- 清空表資料(保留結構、重置自增) TRUNCATE TABLE t; -- 查看資料 SELECT * FROM t LIMIT 10;
# 單庫匯出(含建表語句) mysqldump -u root -p --databases mydb > mydb.sql # 單表匯出 mysqldump -u root -p mydb tbl > tbl.sql # 僅匯出資料(不含建表) mysqldump -u root -p --no-create-info mydb > data.sql # 壓縮匯出 mysqldump -u root -p mydb | gzip > mydb.sql.gz
# 方式 1:mysql 指令導入 SQL 檔 mysql -u root -p mydb < mydb.sql # 方式 2:source 指令(已在 mysql 客戶端內) SOURCE /path/to/mydb.sql; # 方式 3:mysqlimport 導入純文字資料(tab 分隔) mysqlimport -u root -p --local mydb /path/to/tbl.txt
LOAD DATA LOCAL INFILE '/path/to/file.txt' INTO TABLE tbl FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE testdb; CREATE TABLE users ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;