Mysql workbenchでMariaDBに接続

※自分の環境下でなんとなく接続出来ただけです。環境やバージョンで接続出来ないケースなどは当然あると思いますが、メモとして。

経緯

開発でdockerで立てたMariaDBを使用するが、管理ツールとしてDBeaverなどを試していたものの、やはりMysql workbenchが使えるといいなぁと。(個人の好みの問題だが、ER図が見やすいと感じるので)
なんとなくMysqlコマンドで一応MariaDBにも接続出来ることを考えると、Mysql workbenchからでも接続出来るるかな?と思って試しにMariaDBに繋いで見たところ、Mysql workbenchからはSSLでの接続が行われているようで、エラーとなり接続が出来ない。(逆に言えばSSL以外は問題ないの?と思った。)

なのでMysql workbenchでSSL接続を無効にしたいが、設定項目で基本的に「require」が設定されており、SSLを介さず接続することが出来ない感じ。

諦めようかと思ったが、やはりER図とかはworkbenchが使いやすく感じていたので、
なんとか接続出来ないかなぁと、適当に情報を漁って接続してみた。

環境

・Linux Mint 20.3 Una

・Mysql workbench 8.0

・MariaDB 10.8.3 (dockerコンテナ)

参考サイト

How to set up MariaDB SSL and secure connections from clients

How to configure MySQL Workbench to not require SSL encryption

要約

dockerでの立ち上げ時に証明書などを設定出来るようだけど、開発でちょっと利用するだけのものなので、
証明書作成がめんどくさい・・・(そしてズボラな自分は再度利用しようとしたとき、その証明書がどこだかわからなくなる可能性が高い)

なので参考サイトにあったMysql Workbenchの接続オプションでSSLを無効とすることにした。

■Mysql Workbench でのSSL無効

接続のプロパティにおいて、Advanceの項目に以下を指定する。

useSSL=0

上記を指定することで、無事?接続することが出来た。(ただサポートされていないよ、みたいな警告は出てくる。)

一応Server Statusもある程度は見れてるみたい。

で、単純なテーブルとかだとデータベースからのリバースでER図が作れた。
ただ都度 接続のさいにAdvanceでuseSSLを指定しないとダメみたいだけど。
その他、mariaDB独自の実装されているような関数を含むようなものがある場合、リバース出来るのか?
流石に出来なそうに思うが今度試してみよう…メモ:MysqlとMariaDBの関数の違い

まぁ一先ず個人的にはシンプルな構造であればER図にすることが出来るようであれば満足。

設定方法が単純でよかった。これぐらいなら覚えていられそう。

Linux Mint キーマップの変更

経緯

現在ノートパソコンにLinux Mintを入れていて、それで作業を行うことが多い。
ただ今まで利用していたPCがThinkpad X220 であり、古くなってきたこともあってかここ最近調子が悪いことが多くなった。

そのため新しくThinkpad T480に移行することにしたが、従来のX220の7段キーボードにあった、アプリケーションキーが、新しいT480にはない。

個人的に1つのキーでコンテキストメニューを呼び出せるアプリケーションキーがとても便利で利用することが多いため、なんとかT480でも同じことが出来るようにしたかった。

環境

・Thinkpad T480 (日本語キーボード)

・Linux Mint 20.3 Una

参考サイト

Linux MintでSuperキーを無変換キーに割り当て

キーボードマッピングの仕組み

XmodMap

Ubuntu documentation キーボード

要約

以下のファイルを作成、再読込を行うことで

普段あまり使わない右シフトキーを、アプリケーションキー(LinuxではMenuキーというのか?)として利用できるようになった。

■.Xmodmap

keycode 62 = Menu

keycode 62 は右シフトキー 、機種によって違うのかは不明(参考サイトを見る限り、違いそうな気はする)

■作成した.Xmodmapの読み込み

$ xmodmap .Xmodmap

設定手順

■1.キーコードの確認

一先ず参考サイトを参照し、キーコード一覧を見てみる

$ xmodmap -pke
keycode   8 =
keycode   9 = Escape NoSymbol Escape
keycode  10 = 1 exclam 1 exclam
keycode  11 = 2 quotedbl 2 quotedbl
keycode  12 = 3 numbersign 3 numbersign
keycode  13 = 4 dollar 4 dollar
keycode  14 = 5 percent 5 percent
keycode  15 = 6 ampersand 6 ampersand
keycode  16 = 7 apostrophe 7 apostrophe
keycode  17 = 8 parenleft 8 parenleft
keycode  18 = 9 parenright 9 parenright
keycode  19 = 0 asciitilde 0 asciitilde
keycode  20 = minus equal minus equal
keycode  21 = asciicircum asciitilde asciicircum asciitilde
keycode  22 = BackSpace BackSpace BackSpace BackSpace
keycode  23 = Tab ISO_Left_Tab Tab ISO_Left_Tab

うーん、一覧を見てもピンと来ない、、、

なのでxevから該当キーのコードを探す。なおT480にアプリケーションキーは無いため、別途キーボードを繋いで確認した。

$ xev

表示されたウィンドウの黒枠にカーソルを合わせ、該当キーを押す。

●右シフトキーを押したとき

KeyPress event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7b8, subw 0x5a00002, time 5646504, (39,54), root:(2830,522),
    state 0x10, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7b8, subw 0x5a00002, time 5646646, (39,54), root:(2830,522),
    state 0x11, keycode 62 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

よくわからんが “keycode 62” と表示されているので、62なのだろう・・・

同じようにアプリケーションキーを押してみる。

●アプリケーションキーを押したとき

KeyPress event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7b8, subw 0x5a00002, time 5761550, (25,46), root:(2816,514),
    state 0x10, keycode 135 (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7b8, subw 0x5a00002, time 5761712, (25,46), root:(2816,514),
    state 0x10, keycode 135 (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

こちらはkey codeが135らしく、keysym 0xff67 , Menu となっている。

■2.設定ファイルの作成

上記でそれぞれのkey code が分かったので、設定ファイルを作成。

記載方法については、参考サイトのxmodmapコマンドを見たところ

keycode NUMBER = KEYSYMNAME

で、指定するみたい。

keysym と言うのがよく分かっていなかったが、参考サイトをみたところ

X window system 上では、そのボタンが押されたさいの役割を定義しているようなものをkeysymというらしく、

物理配置上のkey codeに、このkeysymを関連付けることで、動作するもののようだ・・・

(初めて知った、こんな仕組みになっていたのね)

なので.xmodmapのファイルに記載するkeysymについては、前項のxevより得られた結果より、

以下のように記載した

●.Xmodmap

keycode 62 = Menu

■3.設定の適用

作成したファイルを適用する

$ xmodmap .Xmodmap

適用後、右シフトキーを押して見る。

・・・

アプリケーションキーと同様にキー押下でコンテキストメニューが表示されることが確認出来た。

もともとThinkpadの7段キーボードが使いやすく感じており、アイソレーションキーで アプリケーションキーが無い最近のThinkpadへの移行をためらっていたが、これで少しは使いやすくなったかな・・・

でも未だプリントスクリーン キーがなんでこんなところにあるの?ホーム・エンドキーが打ちにくいなぁ、などと思うことも多いが・・・慣れの問題なのだろうか?

7段キーボードが復活してほしい・・・