連接與認證
# 登錄
mysql -h host -u user -p
# 修改密碼
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
# 創建用戶並授權
CREATE USER 'app'@'%' IDENTIFIED BY 'pass';
GRANT SELECT, INSERT ON db.* TO 'app'@'%';
FLUSH PRIVILEGES;
庫表結構操作
# 查看/創建/刪除數據庫
SHOW DATABASES;
CREATE DATABASE db CHARSET utf8mb4;
DROP DATABASE db;
# 查看/創建/刪除表
USE db;
SHOW TABLES;
DESC tbl; -- 等同 SHOW COLUMNS FROM tbl
DROP TABLE tbl;
# 修改表結構
ALTER TABLE tbl RENAME TO new_tbl;
ALTER TABLE tbl ADD COLUMN col INT DEFAULT 0;
ALTER TABLE tbl DROP COLUMN col;
ALTER TABLE tbl MODIFY col VARCHAR(50) NOT NULL;
數據操作 (DML)
# 插入
INSERT INTO tbl (a,b) VALUES (1,2), (3,4);
# 查詢
SELECT * FROM tbl ORDER BY id LIMIT 0,10;
SELECT DISTINCT col FROM tbl;
# 更新/刪除(務必帶 WHERE)
UPDATE tbl SET col=10 WHERE id=1;
DELETE FROM tbl WHERE id=1;
數據遷移
# 導出
mysqldump -u root -p db > backup.sql
mysqldump -u root -p db tbl1 tbl2 > partial.sql
# 導入
mysql -u root -p db < backup.sql
# 或在 mysql 客戶端
SOURCE /path/backup.sql;
編碼問題快速修復
SET NAMES utf8mb4;
-- 或在 my.ini [client] 區段
default-character-set=utf8mb4
常用 SHOW 命令
SHOW CREATE TABLE tbl — 顯示建表語句與引擎
SHOW INDEX FROM tbl — 索引詳情
SHOW PROCESSLIST — 當前線程
SHOW ENGINE INNODB STATUS — InnoDB 內部狀態
SHOW VARIABLES LIKE 'max_connections' — 參數查看