2008年7月25日 星期五

MySQL 常用指令

  • 初次設定root密碼
    mysqladmin -u root password '密碼'
  • 修改root密碼
    mysqladmin -u root -p password '新密碼'
    (輸入後,系統會要求輸入原密碼,成功後即修改為新密碼)
  • 顯示資料庫清單
    mysqlshow -u 帳號 -p
  • 顯示某資料庫底下的資料表清單
    mysqlshow 資料庫名稱 -u 帳號 -p
  • 顯示資料表欄位結構
    mysqlshow 資料庫名稱 資料表名稱 -u 帳號 -p
  • 查詢MySQL版本
    mysql> SELECT version();
    mysql> SELECT @@version;
    mysql> SHOW GLOBAL VARIABLES LIKE '%version%';
  • 查詢資料庫檔案的資料夾路徑位置
    mysql> SHOW VARIABLES LIKE 'datadir';
  • 顯示所有 MySQL 資料庫
    mysql> SHOW DATABASES;
  • 切換目前使用的資料庫(目前預設的資料庫)
    mysql> USE 資料庫名稱;
  • 查詢目前使用的資料庫名稱(目前預設的資料庫名稱)
    mysql> SELECT DATABASE();
  • 顯示目前資料庫的資料表列表
    mysql> SHOW TABLES;
    mysql> SHOW TABLES FROM 資料庫名稱;
  • 顯示資料表的欄位(Field, Type, Null, Key, Default, Extra)結構
    mysql> desc 資料表名稱;
    mysql> describe 資料表名稱;
    mysql> SHOW COLUMNS FROM 資料表名稱;
    mysql> SHOW COLUMNS FROM 資料表名稱 FROM 資料庫名稱;
  • 顯示資料表的欄位(Field, Type, Null, Key, Default, Extra,Collation,Privileges,Comment)結構
    mysql> SHOW FULL FIELDS FROM 資料庫名稱.資料表
    mysql> SHOW FULL FIELDS FROM 資料表FROM 資料庫名稱
    mysql> SHOW FULL FIELDS FROM 資料表
  • 顯示系統狀態(詳細)
    mysql> show [global | session] status;
    mysql> show global status where Variable_name='opened_tables';
  • 顯示系統狀態(簡單)
    mysql> status;
  • 顯示系統變數設定值
    mysql> show variables;
    mysql> show variables like '%max%';
  • 顯示 process list(目前正在運作的進程)
    mysql> show processlist;
  • 新增使用者帳號
    mysql> GRANT ALL PRIVILEGES ON dbName.* TO userID@localhost IDENTIFIED BY 'PW';
    mysql> GRANT ALL ON dbName.* TO userID@localhost IDENTIFIED BY 'PW';
  • 設定權限
    mysql> GRANT ALL PRIVILEGES ON dbName.* TO userID@localhost;
    mysql> GRANT ALL ON dbName.* TO userID@localhost;
    mysql> GRANT SELECT ON dbName.* TO userID@localhost;
  • 刪除權限
    mysql> REVOKE ALL PRIVILEGES ON dbName.* TO userID@localhost;
    mysql> REVOKE ALL ON dbName.* TO userID@localhost;
    mysql> REVOKE SELECT ON dbName.* TO userID@localhost;
  • 顯示帳號的權限資訊
    mysql> SHOW GRANTS FOR 帳號名稱@localhost;
  • 刪除帳號 (刪除後,不會自動將該帳號已建立的連線斷線,須等該帳號下次重登時,才會無法登入)
    mysql> DROP USER userID@localhost;
    參考:MySQL :: MySQL 5.7 Reference Manual :: 13.7.1.3 DROP USER Syntax
  • 顯示權限有那些
    mysql> show privileges;
  • 更新權限
    mysql> flush privileges;
  • 顯示資料表格式
    mysql> show table types;
  • 顯示當初資料庫如何建立
    mysql> show create database 資料庫名稱;
  • 顯示當初資料表如何建立
    mysql> show create table 資料表名稱;
  • 顯示資料表索引
    mysql> show index from 資料表名稱;
  • 顯示每個表的訊息。包括表類型和表的最新更新時間
    mysql> show table status from 資料庫名稱;
  • 顯示某個資料表所使用的儲存引擎
    mysql> SHOW TABLE STATUS WHERE Name = '資料表名稱';
  • 顯示可使用的儲存引擎和預設儲存引擎
    mysql> SHOW ENGINES;
    mysql> SHOW STORAGE ENGINES
  • 顯示innoDB存儲引擎的狀態
    mysql> show innodb status; --MySQL5.5移除
    mysql> SHOW ENGINE INNODB STATUS;
  • 顯示最後一個執行的語句所產生的錯誤、警告和通知訊息log
    mysql> SHOW WARNINGS [LIMIT [offset,] row_count];
  • 顯示BDB存儲引擎的日誌
    mysql> show logs;
  • 只顯示最後一個執行語句所產生的錯誤
    mysql> show errors;
  • 顯示Store Procedure基本訊息
    mysql> show procedure status;
  • 顯示某一個Store Procedure的詳細訊息
    mysql> show create procedure sp名稱;
  • 出現  Incorrect key file for table、 Table is marked as crashed and should be repaired 錯誤訊息(修復後資料好像會不見,修復前還是先備份)
    repair table 資料表名稱;
    如果不行
    repair table 資料表名稱 use_frm;
  • mysqlcheck
    mysqlcheck [OPTIONS] database [tables];
    mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...];
    mysqlcheck [OPTIONS] --all-databases;
    OPTIONS:
    -a:Analyze given tables.
    -c:Check table for errors.
    -o:Optimize table.
    -r:repair.Can fix almost anything except unique keys that aren't unique.
  • 在語法後面加「\G」,可垂直列出結果,例如:
    show master status\G;

沒有留言:

張貼留言