mysql -h -u -p [-P] []
# 本地首次 (root 無密)
mysql -uroot -p
# 遠程
mysql -h110.110.110.110 -uroot -pabcd123
# 退出
exit
# 首次設密
mysqladmin -uroot password 'ab12'
# 修改密碼
mysqladmin -uroot -pab12 password 'djg345'
# 忘記 root 密碼重置
# 1. 停止服務
# 2. mysqld_safe --skip-grant-tables &
# 3. mysql -uroot
# 4. UPDATE mysql.user SET authentication_string=PASSWORD('new') WHERE User='root';
# 5. FLUSH PRIVILEGES;
# 6. 重啟正常模式
# 創建用戶 (5.7+ 推薦)
CREATE USER 'test1'@'%' IDENTIFIED BY 'abc';
CREATE USER 'test2'@'localhost' IDENTIFIED BY 'abc';
# 授權 (舊版兼容)
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
# 查看權限
SHOW GRANTS FOR 'test1'@'%';
# 回收/刪除
REVOKE ALL ON *.* FROM 'test1'@'%';
DROP USER 'test1'@'%';
FLUSH PRIVILEGES;
'user'@'%' 高權限SHOW DATABASES;
USE mysql;
SHOW TABLES;
DESC users;
SHOW CREATE TABLE users;
CREATE DATABASE db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE db;
CREATE TABLE t (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50)) ENGINE=InnoDB;
DROP DATABASE db;
DROP TABLE t;
TRUNCATE TABLE t; -- 重建表、自增歸零、不觸發觸發器
DELETE FROM t; -- 逐行刪除、可回滾、觸發器生效
SELECT * FROM t;
SELECT id,name FROM t WHERE id=1 LIMIT 10;
\e 打開 $EDITOR 編寫複雜 SQLmysql --prompt='\\u@\\h [\\d]> 'mysqladmin -uroot -p ping|status|variables
mysqldump -uroot -p db > backup.sql
mysql -uroot -p db < backup.sql
systemctl start|stop|restart mysqld
-- 表大小排序
SELECT TABLE_NAME, ROUND(DATA_LENGTH/1024/1024,2) data_mb,
ROUND(INDEX_LENGTH/1024/1024,2) index_mb, TABLE_ROWS
FROM information_schema.TABLES WHERE TABLE_SCHEMA='db'
ORDER BY DATA_LENGTH DESC;
-- 運行中查詢
SHOW FULL PROCESSLIST;
KILL ;
-- InnoDB 狀態
SHOW ENGINE INNODB STATUS\G
-- 刷新
FLUSH PRIVILEGES; FLUSH LOGS; FLUSH TABLES;
收藏此手冊,日常開發、運維、緊急排查,**Ctrl+F 秒級定位**。命令行是 DBA 的手術刀,熟練度決定精度。