資深 DBA 總結的 MySQL 日常操作精華,涵蓋備份恢復、連接管理、基礎 DDL/DML、密碼與權限體系。
原理:MyISAM 表對應 .frm/.MYD/.MYI 三文件,直接拷貝數據目錄下庫文件夾即可。
# 源庫
cp -r /var/lib/mysql/TestA /backup/
# 目標庫
cp -r /backup/TestA /var/lib/mysql/
# 刷新權限或重啟服務
限制:僅適用 MyISAM、同版本、同架構;InnoDB 共享表空間不可用此法。
# 本地
mysql -uroot -p
# 遠程
mysql -h 110.110.110.110 -uroot -pabcd123
# 退出
exit
mysql -uroot -p < school.sql| 操作 | 命令 |
|---|---|
| 顯示庫 | SHOW DATABASES; |
| 顯示表 | USE db; SHOW TABLES; |
| 表結構 | DESC table_name; |
| 建庫 | CREATE DATABASE name; |
| 建表 | CREATE TABLE t (id INT PRIMARY KEY AUTO_INCREMENT, name CHAR(10)); |
| 刪庫/表 | DROP DATABASE/TABLE name; |
| 清空表 | DELETE FROM table; / TRUNCATE TABLE table; |
| 查詢所有 | SELECT * FROM table; |
DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (
id INT(3) AUTO_INCREMENT PRIMARY KEY,
name CHAR(10) NOT NULL,
address VARCHAR(50) DEFAULT '深圳',
year DATE
);
INSERT INTO teacher VALUES (NULL, 'glchengang', '深圳一中', '1976-10-10');
INSERT INTO teacher VALUES (NULL, 'jack', '深圳一中', '1975-12-23');
# 首次給 root 設密碼
mysqladmin -uroot password 'ab12'
# 修改密碼
mysqladmin -uroot -pab12 password 'djg345'
# 通配主機(危險)
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
# 本地只讀業務庫(安全)
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
# 移除密碼
GRANT SELECT ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
核心原則:最小權限、限制主機、業務專用賬號。