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

MySQL 常用命令大全:系統管理、庫表操作、數據遷移一站式速查

     編輯:MySQL 資料庫相關知識

一、安裝目錄速覽

類型路徑說明
數據目錄/var/lib/mysql/存放 .ibd/.frm 等數據文件
配置文件/etc/my.cnf 或 /usr/share/mysql/主配置與啟動腳本
執行程序/usr/bin/mysql, mysqladmin, mysqldump 等
啟動腳本/etc/init.d/mysqlSysV 風格服務管理

二、系統管理命令

# 連接
mysql -u root -p
mysql -h 127.0.0.1 -u root -p

# 修改密碼(5.7+ 語法)
mysql -u root -p -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';"

# 用戶管理
CREATE USER 'app'@'%' IDENTIFIED BY 'pass';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app'@'%';
FLUSH PRIVILEGES;

DROP USER 'app'@'%';

三、庫表操作核心集

1. 數據庫

SHOW DATABASES;
CREATE DATABASE test;
USE test;
SELECT DATABASE();
SHOW TABLES;
DROP DATABASE test;

2. 表結構

CREATE TABLE MyClass (
    id INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name CHAR(20) NOT NULL,
    sex INT(4) NOT NULL DEFAULT '0',
    degree DOUBLE(16,2)
);

DESC MyClass;
SHOW COLUMNS FROM MyClass;

DROP TABLE MyClass;

3. 數據操作

INSERT INTO MyClass VALUES (1,'Tom',96.45),(2,'Joan',82.99);
SELECT * FROM MyClass;
SELECT * FROM MyClass LIMIT 0,2;
DELETE FROM MyClass WHERE id=1;
UPDATE MyClass SET name='Mary' WHERE id=1;

ALTER TABLE MyClass ADD passtest INT(4) DEFAULT '0';
RENAME TABLE MyClass TO YouClass;

四、數據遷移:mysqldump 完全指南

1. 導出模式對比

需求命令模板關鍵參數
全庫備份mysqldump -u root -p -A > all.sql-A (--all-databases)
單庫備份(結構+數據)mysqldump -u root -p db > db.sql默認行為
單表備份mysqldump -u root -p db tbl > tbl.sql指定表名
僅結構mysqldump -u root -p -d db > struct.sql-d (--no-data)
僅數據mysqldump -u root -p -t db > data.sql-t (--no-create-info)
含存儲過程/函數mysqldump -u root -p -R db > routines.sql-R (--routines)
含事件mysqldump -u root -p -E db > events.sql-E (--events)
熱備份(InnoDB)mysqldump -u root -p --single-transaction db > hot.sql--single-transaction

2. 導入方式

# 方式一:source(需先建庫進入)
mysql -u root -p -e "CREATE DATABASE db;"
mysql -u root -p db -e "SOURCE /path/db.sql;"

# 方式二:管道重定向(推薦腳本化)
mysql -u root -p db < /path/db.sql

3. 生產環境備份最佳實踐

#!/bin/bash
# 日備份腳本示例
DATE=$(date +%F_%H-%M)
mysqldump -u backup_user -p'StrongPass' \
  --single-transaction \
  --master-data=2 \
  --flush-logs \
  --routines --events --triggers \
  --databases db1 db2 > /backup/mysql_${DATE}.sql

# 壓縮
gzip /backup/mysql_${DATE}.sql

# 保留 7 天
find /backup -name "mysql_*.sql.gz" -mtime +7 -delete

五、進階技巧:字段內容批量更新

-- 替換字符串
UPDATE article SET content = REPLACE(content, '舊域名.com', '新域名.com');

-- 前綴拼接
UPDATE article SET content = CONCAT('    ', content);

-- 條件批量更新
UPDATE orders SET status=2 WHERE status=1 AND created_at < '2023-01-01';

本文彙總的命令覆蓋從安裝部署到日常運維的全鏈路。建議將高頻命令製成便簽,重點掌握 mysqldump 參數組合與 GRANT 權限模型,這是 DBA 與開發者的分水嶺。

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