Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MySQL Shellを使ってみよう!
Search
mikoma
January 17, 2020
Technology
0
1.7k
MySQL Shellを使ってみよう!
mikoma
January 17, 2020
Tweet
Share
More Decks by mikoma
See All by mikoma
MySQL最新情報 MySQL9.2
ikomachi226
0
34
MySQL最新情報といま知っておきたいバージョンアップの基礎知識
ikomachi226
0
2.1k
MySQLのリリースモデルの変更点と最新アップデート
ikomachi226
0
220
MySQLで実践する機械学習 -HeatWave AutoML-
ikomachi226
0
320
Other Decks in Technology
See All in Technology
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
330
Snowflake ML モデルを dbt データパイプラインに組み込む
estie
0
100
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.9k
【Findy】「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly by findy
i35_267
5
910
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
2
270
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
230
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
110
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
260
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
110
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
Fraxinus00tw assembly manual
fukumay
0
110
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
200
Featured
See All Featured
Designing Experiences People Love
moore
140
23k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
What's in a price? How to price your products and services
michaelherold
244
12k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
How GitHub (no longer) Works
holman
314
140k
Building an army of robots
kneath
303
45k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Transcript
MySQL GBU January 17, 2020 生駒 眞知子/Machiko Ikoma MySQL Technology
Café #7 MySQL Shell を使ってみよう!
2 Copyright © 2020 Oracle and/or its a!liates. Safe harbor
statement ⟃♴ך✲갪כծ䒦爡ך♧菙涸ז醡ㅷך倯ぢ䚍חꟼׅ嚊銲铡僇ׅךדׅկתծ䞔㜠䲿⣘㈓ ♧ך湡涸הׅךד֮ծְַז㤍秈ח穈鴥ֿהכדֹתׇկ⟃♴ך✲갪כծوذٔ، ٕװ؝٦سծ堣腉䲿⣘ֿׅה؝ىحزًٝز然秈ׅךדכזְծ飑顠寸㹀遤ֲ ꥷךⴻ倖勞俱חזׁזְד♴ְׁկ ؙٕؔٓ醡ㅷחꟼ׃ג鎸鯹ׁגְ堣腉ך涪ծٔٔ٦أֶ״ן儗劍חאְגכծ䒦爡ך鄩ꆀח״ 寸㹀ׁתׅկ 0SBDMFה+BWBכծ0SBDMF$PSQPSBUJPO⿹ןך㶨⠓爡ծꟼ鸬⠓爡ך碛㕂⿹ןך➭ך㕂חֶֽ涫 ꐮ㉀垥דׅկ 俑⚥ך爡せծ㉀ㅷせ瘝כぐ爡ך㉀垥תכ涫ꐮ㉀垥ד֮㜥さָ֮תׅկ
3 Copyright © 2020 Oracle and/or its a!liates. Innovation Dayご参加ありがとうございました!
4 Copyright © 2020 Oracle and/or its a!liates. أؾ٦ؕ٦傈劤弫㋪׃ת׃˘
5 Copyright © 2020 Oracle and/or its a!liates. Innovation Dayアンケートより
• .Z42-4IFMMך堣腉濼ֿהָדֹծהג葺ַ • .Z42-4IFMMכ莆帾ְ • .Z42-4IFMMכ״ַֻגְתׇד׃ָծׁג⢪ ִ״ֲחׅץֹה䙼ְתׅ • .Z42-湊鋔ׅךח.Z42-4IFMM⢪ְְה嗚鎢׃גְ ךד鑫׃ְ铡僇הرָٌ鋅ג״ַ • .Z42-4IFMMךفؚٓ؎ٝזו濼זַֿהָ㢳ֻהג חזת׃ ˘זוזו .Z42-4IFMMפך갟ְֹֻׁת׃
6 Copyright © 2020 Oracle and/or its a!liates. 本日のテーマは MySQL
Shellです
7 Copyright © 2020 Oracle and/or its a!liates. MySQL 8.0.19、MySQL
Cluster8.0.19リリース!
8 Copyright © 2020 Oracle and/or its a!liates. 本日のお品書き 18:30
-18:35 オープニング 18:35 -19:00 MySQL Shellの機能(Innovation Dayおさらい) 19:00 -19:15 休憩 19:15 -20:30 デモ&もくもく&シェア 20:30 -21:30 ネットワーキング 21:30 撤収
9 Copyright © 2020 Oracle and/or its a!liates. 本日使うもの •
.Z42-4FSWFS • .Z42-4IFMM • .Z42-3PVUFS • (JU)VCHJU • 1ZUIPO
ざっくり解説 MySQL Shell –Innovation Dayのおさらい
11 Copyright © 2020 Oracle and/or its a!liates. MySQL Shell
涪٥盖椚ךך؎ٝةؿؑ٦أ 㢳鎉铂؟ه٦ز ٥+BWB4DSJQU ٥1ZUIPO ٥42- Ύ 㹋遤䕎䒭鼅䫛〳腉 ٥غحث ٥؎ٝةؙٓذ؍ـ Ώ .Z42-ِ٦ذ؍ٔذ؍ ٥،حفؚٖ٦سثؑحؕ٦ ٥+40/؎ٝه٦ز ٥넝鸞ر٦ةٗ٦س ΐ 窟さׁ"1* ٥سًُؗٝزأز،乼⡲ ٥*OOP%#ؙٓأة盖椚
12 Copyright © 2020 Oracle and/or its a!liates. 㔳חׅה˘
13 Copyright © 2020 Oracle and/or its a!liates. 実は前から存在していた 5.7.12
2015/4/8 5.7GA (5.7.9) 2016/4/11 2017/4/11 5.7.18 2017/4/12 1.0.9 MySQL Server MySQL Shell 1.0.3 初版 2016/4/11 2019/10/14 8.0.18 2017/4/18 8.0GA (8.0.11) 2019/10/14 8.0.18 2017/4/18 8.0.11
14 Copyright © 2020 Oracle and/or its a!liates. インストール・セットアップでおすすめしたいこと h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-con#guring-options.html
• 最新のMySQL Shellを使用する • サーバーが5.7であってもMySQL Shell は8.0を使用する • 実行履歴を保存する • shell.options.setPersist • デフォルトのモードをお好みで設定する(JavaScript/Python/SQL) • JavaScript/Pythonのモジュールも実行可能(xxxx.js,xxxx.py) h"ps://insidemysql.com/mysql-shell-8-0-18/
15 Copyright © 2020 Oracle and/or its a!liates. MySQL Shellのオブジェクト
dba InnoDB cluster管理 ext MySQL Shellプラグイン mysql 旧プロトコル経由でのMySQL Server操作 mysqlx Xプロトコル経由でのMySQL Server操作 shell MySQL Shell自体のプロパティ sys システム設定 util ユーティリティ(アップグレードチェッカーなど)
16 Copyright © 2020 Oracle and/or its a!liates. MySQL Shellのオブジェクト
dba InnoDB cluster管理 ext MySQL Shellプラグイン mysql 旧プロトコル経由でのMySQL Server操作 mysqlx Xプロトコル経由でのMySQL Server操作 shell MySQL Shell自体のプロパティ sys システム設定 util ユーティリティ(アップグレードチェッカーなど)
17 Copyright © 2020 Oracle and/or its a!liates. プラグインを使うと… h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-con#guring-options.html
• MySQL Serverのステータス情報などのレポート形式をカスタマイズ • 独自オブジェクト、拡張プラグインを追加する • 決まって実施するルーティンの簡略化 • 足りない機能を補完
18 Copyright © 2020 Oracle and/or its a!liates. プラグインを拡張するには… https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/
• MySQL Shellのメソッドを使う
19 Copyright © 2020 Oracle and/or its a!liates. 拡張機能を触ってみる!3ステップ 1.
MySQL Shellをインストール! 2. LeFredの公開サンプルをダウンロード! 3. オリジナル拡張機能(プラグイン)を作る!
20 Copyright © 2020 Oracle and/or its a!liates. 1. MySQL
Shellのインストール例 macOS 以下からdmgパッケージをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/ Windows 以下からmsiインストーラをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/ https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html Linux系 APTレポジトリ、Yumレポジトリをダウンロードして実行 または以下からrpmパッケージをダウンロードして実行 h"ps://dev.mysql.com/downloads/shell/
21 Copyright © 2020 Oracle and/or its a!liates. 2. LeFredの公開サンプルをダウンロード
・URL https://github.com/lefred/mysqlshell-plugins ・ダウンロード方法 もしくはZIP形式ファイルをダウンロードして格納先ファイルパス配下(次ページ参照)にコピーする macOS/Linux $ mkdir -p ~/.mysqlsh/plugins $ git clone h"ps://github.com/lefred/mysqlshell-plugins.git ~/.mysqlsh/plugins/ext Windows $ mkdir %AppData%¥MySQL¥mysqlsh¥plugins $ git clone h"ps://github.com/lefred/mysqlshell-plugins.git %AppData%¥MySQL¥mysqlsh¥plugins¥ext
22 Copyright © 2020 Oracle and/or its a!liates. 3. オリジナルの拡張機能(プラグイン)を作る
• デフォルトの格納先ファイルパス • 初期化スクリプト • init.jsファイル or init.pyファイル • デフォルトのオブジェクト • shell, dba, util : グローバルオブジェクト • mysql : ShellAPI • mysqlx : Xプラグイン macOS/Linux ~/.mysqlsh/plugins Windows $ %AppData%¥MySQL¥mysqlsh¥plugins MYSQLSH_USER_CONFIG_HOMEで 変更可能
23 Copyright © 2020 Oracle and/or its a!liates. Pythonで拡張機能を作成する場合の注意点 •
Pythonのコーディング規約PEP8に準拠する h"ps://www.python.org/dev/peps/pep-0008/ • サブフォルダごとに__init.py__ファイルを格納しておく • モジュールをインポートする場合、fromはフルパスで指定する 例) from ext.demo.src import sample h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-plugins-package.html
24 Copyright © 2020 Oracle and/or its a!liates. プラグイングループ •
プラグインフォルダ配下にプラグインを分類して格納することが可能 例えば、以下のようなプラグインをまとめて格納する、 特定のテーマに関するレポートを提供する 同じ共通コードを再利用する 同じ拡張オブジェクトに機能を追加する h"ps://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-plugins-groups.html
25 Copyright © 2020 Oracle and/or its a!liates. 練習:Oracle8ball サンプル
h"ps://github.com/ikomachi226/tecnologycafe7/tree/master/demo
26 Copyright © 2020 Oracle and/or its a!liates. Fredのサンプルプラグイン check
collations connect innodb innodb_cluster maintenance proxysql router schema security support
27 Copyright © 2020 Oracle and/or its a!liates. LeFredのサンプルプラグイン ext.innodb.
getFragmentedTablesDisk() • 断片化されている可能性のあるディスクスペースを取得する
28 Copyright © 2020 Oracle and/or its a!liates. LeFredのサンプルプラグイン ext.innodb.getAlterProgress()
• ALTER TABLEの進捗を取得する
29 Copyright © 2020 Oracle and/or its a!liates. 改めまして… 2020/1/13
MySQL Server 8.0.19 リリース! MySQL NDB Cluster 8.0.19 リリース!
30 Copyright © 2020 Oracle and/or its a!liates. InnoDB Replicaset
New • 非同期レプリケーション • CLONEプラグイン • MySQL Routerを使った手動フェイルオーバー • MySQL Shellによる作成・管理 h"ps://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-replicasets.html h"ps://mysqlserverteam.com/introducing-mysql-innodb-replicaset/
31 Copyright © 2020 Oracle and/or its a!liates. InnoDB Cluster
VS InnoDB Replicaset InnoDB Cluster InnoDB Replicaset
32 Copyright © 2020 Oracle and/or its a!liates. Let’s Replicaset
! サンプル h"ps://github.com/ikomachi226/tecnologycafe7/ ReplicaSet-8019-pb-trying.txt
33 Copyright © 2020 Oracle and/or its a!liates. もくもく!
34 Copyright © 2020 Oracle and/or its a!liates. Share your
ideas! • Shell使ってみた! • こんなプラグイン作ってみた! • あんなプラグインが欲しい! その思いつきが誰かの救世主!になるかも
None