是該努力點了!
408 字
2 分鐘
MySQL-X-DevAPI
2024-10-05

MySQL X DevAPI#

透過這個 API 可以更方便的操作 MySQL 資料庫,MySQL X DevAPI 是在 MySQL 5.7.12 版本中引入的;
使用 X Protocol 協議,並透過 X DevAPI 更方便的操作資料庫。

環境#

  • MySQL 5.7.12 以上版本
  • MySQL Shell mysqlsh 客戶端 install

檢查 MySQL 是否支援 X DevAPI#

# -u 使用者, -p 使用密碼, -e 執行指令
mysql -u root -p -e "SHOW plugins"

# 安裝
mysql -u root -p -e "INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';"

使用語句查詢 X DevAPI 是否可用#

SHOW VARIABLES LIKE 'mysqlx_%';

透過簡單的 mysqlsh 使用:#

# 單純進入 mysqlsh 終端,但為進行任何連接
mysqlsh

# 使用連接串進行連接 (<連接字>://<帳號>@<主機>:<端口>/<資料庫>)
mysqlsh mysqlx://root@localhost:33060/test

mysqlsh

幾個常用的指令: 列表

  • \js … 切換成 js 模式
  • \py … 切換成 python 模式
  • \sql … 切換成 sql 模式
  • \status … 查看連接狀態
  • \! ls … 執行 shell 指令
  • \W … 顯示 Warning
  • \w … 不顯示 Warning
  • \show … 顯示所有的資料庫
  • \connect … 連接資料庫 ex.: \connect root@localhost:33060
  • \reconnect … 重新連接資料庫
  • \disconnect … 斷開資料庫
  • \use … 使用資料庫

連入時就已經有的參數(非全部,參考這裏):#

  • session : 會話 (\connect 連線成功後,session 物件會有值可操作)
    • session.startTransaction()
    • session.commit()
    • session.rollback()
    • session.getUri()
    • session.getSchemas()
    • session.getSchema(‘my_database’)
    • session.close()
    • session.isOpen()
  • db : 資料庫 (\use 指令後,db 物件會有值可操作)
    • db.getCollections()
    • db.getCollection(‘my_collection’)
    • db.getTables()
    • db.getTable(‘my_table’)
  • util : 工具 dev-mysql.util

MySQL X DevAPI 操作#

mysql-x-devapi mode-switch-with-table-js

可直接在 mysqlsh 中直接使用 SQL 指令#

但前提是需要指定好所選資料庫,也就是 \use my_database,才能使用對應資料表的 SQL 指令。

\sql show create table users \G

參考資料#