首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 命令行操作全攻略:連接、用戶、庫表、實用技巧

     編輯:MySQL 綜合教學

一、連接 MySQL

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'@'%' 高權限
  • 最小權限:庫級 > 表級 > 欄位級
  • 生產綁定 IP 段
  • 定期輪換審計

四、庫表操作 (mysql> 模式)

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;

五、交互模式實用技巧

  1. 跨行輸入:忘記分號直接補分號
  2. ↑↓ 歷史命令 (需 readline)
  3. Tab 自動補全表名/欄位/關鍵字
  4. \e 打開 $EDITOR 編寫複雜 SQL
  5. 自定義提示符:mysql --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 的手術刀,熟練度決定精度。

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