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

Linux 下 MySQL 常用命令速查:索引、編碼、授權、備份、DDL、服務管理

     編輯:MySQL 資料庫相關知識

索引操作

# 查看索引
SHOW INDEX FROM tbl_name;

# 強制使用指定索引
SELECT * FROM tbl_name USE INDEX (idx_name) WHERE ...;

# 強制忽略索引
SELECT * FROM tbl_name IGNORE INDEX (idx_name) WHERE ...;

資料庫與編碼

# 建庫指定字符集/排序規則
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

# 修改庫編碼
ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

# 修改表編碼(僅影響新資料)
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

授權與用戶管理

# 建立用戶並授權(8.0+)
CREATE USER 'user'@'%' IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'%';
FLUSH PRIVILEGES;

# 僅本機
GRANT ALL ON db_name.* TO 'user'@'localhost' IDENTIFIED BY 'pass';

# 查看權限
SHOW GRANTS FOR 'user'@'%';

# 回收/刪除
REVOKE ALL ON db_name.* FROM 'user'@'%';
DROP USER 'user'@'%';

視圖查詢

SHOW TABLE STATUS WHERE Comment='VIEW';
-- 或
SHOW FULL TABLES WHERE Table_type='VIEW';

全域編碼啟動參數

# 啟動時指定(臨時)
mysqld_safe --default-character-set=utf8mb4 &

# 永久生效寫入 my.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci

DDL 常用操作

# 重命名表
RENAME TABLE old_name TO new_name;

# 修改欄位屬性
ALTER TABLE tbl_name CHANGE old_col new_col VARCHAR(50) NOT NULL;

# 指定位置新增欄位
ALTER TABLE tbl_name ADD new_col DATETIME NOT NULL AFTER exist_col;

服務管理

動作systemd (CentOS 7+/Ubuntu 16+)SysVinit (舊版)
啟動systemctl start mysqldservice mysqld start / /etc/init.d/mysqld start
停止systemctl stop mysqldservice mysqld stop
重啟systemctl restart mysqldservice mysqld restart
狀態systemctl status mysqldservice mysqld status
開機自啟systemctl enable mysqldchkconfig mysqld on

連線與密碼

# 本機連線
mysql -u root -p

# 指定 socket(多實例)
mysql -u root -p -S /data/app_1/mysql.sock

# 修改密碼
mysqladmin -u root -p'old' password 'new'
-- 或 SQL
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new';
FLUSH PRIVILEGES;

備份與還原

# 備份(單庫)
mysqldump -u root -p db_name > backup.sql

# 還原
mysql -u root -p db_name < backup.sql

# 壓縮備份
mysqldump -u root -p db_name | gzip > backup.sql.gz
gunzip < backup.sql.gz | mysql -u root -p db_name

新增用戶範例(完整權限)

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'test'@'%' IDENTIFIED BY '123';
FLUSH PRIVILEGES;

安全建議

  • 執行 mysql_secure_installation 互動式加固。
  • 刪除匿名用戶:DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES;
  • 移除 test 庫:DROP DATABASE test;
  • 關閉遠程 root:DELETE FROM mysql.user WHERE User='root' AND Host!='localhost'; FLUSH PRIVILEGES;

總結

本文彙整 Linux 環境下 MySQL 運維最高頻的命令:索引、編碼、授權、視圖、DDL、服務管理、連線、備份、安全。建議收藏並根據實際版本(5.7/8.0)微調語法(如 PASSWORD() 已移除、caching_sha2_password 預設)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved