MySQL 命令行客戶端連接參數、用戶創建授權模板、操作技巧、顯示命令,構建日常運維速查手冊。
mysql -h host -u user -p[password] [database]
# 參數緊跟選項無空格:-uroot -p123 (生產環境建議 -p 交互輸入)
| 場景 | 命令 |
|---|---|
| 本機 root 無密 (初裝) | mysql -uroot -p → 直接回車 |
| 本機 root 有密 | mysql -uroot -p → 輸入密碼 |
| 遠程連接 | mysql -h 192.168.1.100 -uroot -p |
| 指定庫直連 | mysql -h 192.168.1.100 -uapp -p -D mydb |
| 執行單條 SQL 退出 | mysql -uroot -p -e "SELECT VERSION();" |
| 退出客戶端 | exit / quit / \q |
# 5.7 / 8.0 通用 (推薦)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass#2024';
FLUSH PRIVILEGES;
# 5.7 兼容
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPass#2024');
# mysqladmin 命令行 (需舊密碼)
mysqladmin -uroot -p'oldpass' password 'newpass'
-- 1. 創建用戶 (指定主機/密碼/插件/過期策略)
CREATE USER 'app_user'@'10.0.%'
IDENTIFIED WITH caching_sha2_password BY 'StrongPass#2024'
PASSWORD EXPIRE INTERVAL 90 DAY
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 2;
-- 2. 授權 (最小權限)
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'10.0.%';
-- 僅特定表
GRANT SELECT ON mydb.orders TO 'report_user'@'10.0.%';
-- 3. 生效
FLUSH PRIVILEGES;
-- 4. 查看權限
SHOW GRANTS FOR 'app_user'@'10.0.%';
SELECT * FROM t \G 適合寬表閱讀\c 回車
SHOW DATABASES; -- 庫列表
USE mysql; SHOW TABLES; -- mysql 系統庫表
DESC user; -- 表結構
SHOW CREATE TABLE user; -- 完整建表語句
SELECT Host, User FROM user; -- 所有用戶
SHOW GRANTS FOR 'root'@'localhost'; -- 權限詳情
SHOW VARIABLES LIKE 'max_conn%'; -- 參數查看
SHOW PROCESSLIST; -- 當前連接/查詢
SHOW ENGINE INNODB STATUS; -- InnoDB 狀態