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

MySQL 常用命令大全:Linux/Windows 運維速查手冊

     編輯:MySQL 資料庫相關知識

服務管理

# Linux (Systemd)
systemctl start|stop|restart|status mysqld
service mysqld start|stop|restart|status

# Windows
net start mysql
net stop mysql
sc start mysql

連接與基礎操作

# 連接
mysql -u root -p
mysql -h host -u user -p dbname

# 交互命令
SHOW DATABASES;
USE dbname;
SHOW TABLES;
SHOW COLUMNS FROM tbl;
DESC tbl;

數據庫/表結構管理

-- 建庫/刪庫
CREATE DATABASE dbname CHARSET utf8mb4;
DROP DATABASE dbname;

-- 建表/刪表
CREATE TABLE tbl (id INT PRIMARY KEY, name VARCHAR(50));
DROP TABLE tbl;

-- 判斷存在再建
CREATE TABLE IF NOT EXISTS tbl (...);
DROP TABLE IF EXISTS tbl;

-- 複製表結構
CREATE TABLE tbl2 LIKE tbl1;

-- 複製表結構+數據
CREATE TABLE tbl2 SELECT * FROM tbl1;

-- 重命名表
RENAME TABLE tbl1 TO tbl2;
ALTER TABLE tbl1 RENAME tbl2;

列操作

-- 增加列
ALTER TABLE tbl ADD COLUMN col1 INT DEFAULT 0;
ALTER TABLE tbl ADD COLUMN col1 INT AFTER col2, ADD COLUMN col2 VARCHAR(50);

-- 修改列
ALTER TABLE tbl MODIFY col1 BIGINT NOT NULL;
ALTER TABLE tbl CHANGE old_col new_col INT DEFAULT 0;

-- 刪除列
ALTER TABLE tbl DROP COLUMN col1;

索引管理

-- 創建
ALTER TABLE tbl ADD INDEX idx_name (col1);
CREATE INDEX idx_name ON tbl (col1);
CREATE UNIQUE INDEX uk_name ON tbl (col1);
ALTER TABLE tbl ADD PRIMARY KEY (id);

-- 刪除
DROP INDEX idx_name ON tbl;
ALTER TABLE tbl DROP INDEX idx_name;
ALTER TABLE tbl DROP PRIMARY KEY;

數據操作 (DML)

-- 插入
INSERT INTO tbl (col1, col2) VALUES (1, 'a'), (2, 'b');
INSERT INTO tbl SELECT * FROM other_tbl;

-- 更新
UPDATE tbl SET col2='new' WHERE col1=1;
UPDATE tbl SET col2=col2+1 WHERE col1>10 ORDER BY col1 LIMIT 100;

-- 刪除
DELETE FROM tbl WHERE col1=1;
TRUNCATE TABLE tbl;  -- 重置自增、極快

查詢分析

-- 執行計劃
EXPLAIN SELECT * FROM tbl WHERE id=1;
DESC SELECT * FROM tbl WHERE id=1;

-- 通配符
SELECT * FROM tbl WHERE name LIKE 'a%';
SELECT * FROM tbl WHERE name LIKE '_bc';

-- 分頁
SELECT * FROM tbl LIMIT 10;           -- 前 10
SELECT * FROM tbl LIMIT 10, 20;       -- 跳過 10 取 20
SELECT * FROM tbl LIMIT 20 OFFSET 10; -- 5.6+ 標準寫法

備份與恢復

# 邏輯備份
mysqldump -u root -p dbname > backup.sql
mysqldump -u root -p dbname tbl1 tbl2 > backup.sql
mysqldump -u root -p --single-transaction --routines --triggers dbname > full.sql

# 恢復
mysql -u root -p dbname < backup.sql

# 物理備份 (需停庫/鎖表)
cp -r /var/lib/mysql /backup/
# 或 xtrabackup (熱備份)

用戶權限

-- 創建用戶
CREATE USER 'user'@'%' IDENTIFIED BY 'pass';

-- 授權
GRANT ALL ON db.* TO 'user'@'%';
GRANT SELECT, INSERT ON db.* TO 'user'@'%';

-- 撤銷
REVOKE ALL ON db.* FROM 'user'@'%';

-- 刷新
FLUSH PRIVILEGES;

-- 修改密碼 (5.7+)
ALTER USER 'user'@'%' IDENTIFIED BY 'newpass';
SET PASSWORD FOR 'user'@'%' = 'newpass';

常用系統變量查看

SHOW VARIABLES LIKE 'max_connections';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Slow_queries';
SHOW ENGINE INNODB STATUS\G

優化相關

-- 分析表
ANALYZE TABLE tbl;

-- 檢查表
CHECK TABLE tbl [QUICK|FAST|MEDIUM|EXTENDED|CHANGED];

-- 優化表 (碎片整理)
OPTIMIZE TABLE tbl;

-- 索引使用統計
SHOW INDEX FROM tbl;
SHOW STATUS LIKE 'Handler_read%';

字符集與編碼

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

-- 修改表字符集
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

通配符速查

符號含義示例
%任意長度字符(含0)'a%' 'ab%c'
_任意單字符'a_' '_bc' '___'
[...]字符集合 (REGEXP)REGEXP '[abc]'
[^...]非字符集合REGEXP '[^0-9]'

語句結束符

  • 分號 ; (默認)
  • \g (等同分號)
  • \G (垂直顯示結果)
  • 自定義:DELIMITER // ... // DELIMITER ;

多行輸入技巧

  • 單條語句不可拆行(字符串中硬換行會被存入)
  • 存儲過程/觸發器用 DELIMITER 修改結束符
  • 交互模式下未閉合引號/括號可換行繼續輸入
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved