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

MySQL 入門到精通:基礎操作、備份遷移、進階管理完整指南

     編輯:MySQL 資料庫相關知識

一、連線與基礎操作

1. 連線指令

# 本地連線
mysql -u root -p
# 遠端連線
mysql -h 192.168.1.100 -u root -p'password' -P 3306
# 退出
exit

2. 修改密碼

# 5.7+ 官方推薦
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass';
FLUSH PRIVILEGES;
# 或 mysqladmin
mysqladmin -u root -p'oldpass' password 'newpass'

3. 用戶授權 (MySQL 8.0 語法)

CREATE USER 'app'@'%' IDENTIFIED BY 'strongpass';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app'@'%';
FLUSH PRIVILEGES;
# 僅本地連線 (較安全)
GRANT ALL ON mydb.* TO 'app'@'localhost';

二、DDL/DML 核心語法速查

操作語法
建庫CREATE DATABASE db_name CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
刪庫DROP DATABASE db_name;
建表CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL) ENGINE=InnoDB;
刪表DROP TABLE t;
清空表TRUNCATE TABLE t; (比 DELETE 快,不記 Binlog)
查詢SELECT * FROM t WHERE id=1;
插入INSERT INTO t (name) VALUES ('test');
更新UPDATE t SET name='new' WHERE id=1;
刪除DELETE FROM t WHERE id=1;

三、資料匯入匯出

1. 文字檔匯入

LOAD DATA LOCAL INFILE '/path/data.txt' INTO TABLE t 
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (col1, col2);

2. mysqldump 備份

# 全庫備份 (含結構+資料+常式)
mysqldump -u root -p --single-transaction --routines --triggers --events db > backup.sql

# 僅結構
mysqldump -d -u root -p db > struct.sql

# 壓縮備份
mysqldump -u root -p db | gzip > backup.sql.gz

3. 還原

mysql -u root -p db < backup.sql
# 或大檔案用 source
mysql> SOURCE /path/backup.sql;

四、實體檔案級備份遷移 (MyISAM/InnoDB 通用)

原理:MySQL 資料目錄下每個資料庫一個子目錄,直接複製目錄即可遷移 (需停庫或鎖表)。

# 主庫
FLUSH TABLES WITH READ LOCK;
# 複製 /var/lib/mysql/db_name 到從機同目錄
UNLOCK TABLES;
# 從機重啟或 FLUSH TABLES 即可識別

注意:InnoDB 共享表空間 ibdata1 需一併複製,或使用 innodb_file_per_table=ON 獨立表空間遷移更靈活。

五、mysqldump 進階參數詳解

參數用途
--opt綜合優化 (--quick --add-drop-table --add-locks --extended-insert --lock-tables)
--single-transactionInnoDB 熱備份不鎖表,必加
--master-data=2記錄 Binlog 位置 (註解形式),搭建主從必備
--hex-blob二進位欄位十六進位輸出,避免編碼損壞
--skip-lock-tables配合 --single-transaction 避免鎖表
-w, --where條件匯出,如 -w "id>1000"

六、服務管理

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

# Windows 服務
net start mysql
net stop mysql

七、進階遷移:主從切換 (Failover)

  1. 從庫停止 IO 執行緒:STOP SLAVE IO_THREAD; 等 Has read all relay log。
  2. 從庫升主:STOP SLAVE; RESET MASTER; 刪除 master.info、relay-log.info。
  3. 應用端切換連線字串指向新主庫。
  4. 原主庫修復後重建為從庫 (重新 CHANGE MASTER TO + START SLAVE)。

總結

MySQL 基礎操作看似簡單,但生產環境關鍵在於:字符集統一 utf8mb4、InnoDB 單表空間、熱備份 --single-transaction、主從 GTID 模式、嚴格權限最小化。建立 SOP 文檔,定期演練備份還原與主從切換,才能從容應對故障。

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