MySQL WorkbenchからMariaDBに接続する
MySQL Workbenchはデータベースのクライアントソフトである。どちらかといえば、MySQL専用のクライアントソフトといっていい。では、MariaDBはMySQLと互換性が高いので接続できるかというと、そう簡単には接続できない。SSLで接続する必要がある。MySQL Serverをインストールして試したわけではないが、MySQLであればSSLでなくとも接続できると思われる。
今回はMariaDBにMySQL Workbenchを利用して接続してみた。接続環境は、Linux mint 20.3 MATE、MariaDB 10.7.3、MySQL Workbench 8.0.29である。
※SSL設定しなくとも接続できるようになった。(2022/04/29)
SSL証明書の発行
MariaDBがSSL接続有効になっていないと、SSLを有効にしろといわれ、MySQL Workbenchから接続できない。MariaDBを実行して確認すると、have_sslの値がDisableになっている。この値をYESにする必要がある。
MariaDB [(none)]> show variables like '%have_ssl%'; +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | have_ssl | Disable | +---------------+-----------+ 1 row in set (0.003 sec) MariaDB [(none)]>
証明書の発行については、「Website for Students」に詳しい。このサイトに書かれている手順でやればOKである。ここではあえて掲載しない。ただし、Ubuntuなので、Linux mintでも同じ方法で行えるが、ほかのLinuxやWindwos、MacなどのOSについてはわからないということを申し上げておく。上記のサイトで作成される証明書は1年(365日)である。1年超えた場合は再度作成すればいいだろう。
すべて設定し終わると、次のようになる。
MariaDB [(none)]> show variables like '%ssl%'; +---------------------+------------------------------------+ | Variable_name | Value | +---------------------+------------------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /var/lib/mysql/pki/ca-cert.pem | | ssl_capath | | | ssl_cert | /var/lib/mysql/pki/server-cert.pem | | ssl_cipher | | | ssl_crl | | | ssl_crlpath | | | ssl_key | /var/lib/mysql/pki/server-key.pem | | version_ssl_library | OpenSSL 1.1.1f 31 Mar 2020 | +---------------------+------------------------------------+ 10 rows in set (0.002 sec) MariaDB [(none)]>
MySQL Workbenchのダウンロードとインストール
ダウンロード
MySQL Workbenchの公式サイトからダウンロードする。
[ダウンロードはこちら ≫]をクリックする。
「Select Operating System」はUbuntu Linux、「Select OS Verson」はUbuntu Linux 20.04 (x86, 64-bit)を選択する。2つのパッケージが表示されるが、ダウンロードするのは、サイズの小さい「mysql-workbench-community_8.0.29-1ubuntu20.04_amd64.deb」である。
インストール
.debパッケージなので、ダウンロードしたファイルをダブルクリックするか、右クリックして「GDebiパッケージインストーラで開く(O)」を選択する。インストール後はLinux mintメニューをクリックすると、プログラミングカテゴリーに登録されている。
MariaDBに接続する
MySQL Workbenchを最初に起動すると、下記のようなウィンドウが表示される。簡単に言うと、「サポートされていないOSだから問題が起きても自己責任だからね」(意訳)である。起動するたびに表示されるので、「Don’t show this message again」にチェックを入れておく。
「MySQL Connections」の右にあるアイコンをクリックして、接続セットアップする。
ここで入力するのは、「Connection Name」、「Username」、「Password」の3つである。このうち、「Username」はデフォルトになっているroot以外であれば入力する。「Default Schema」は、この接続が常に同じデータベースを使用する場合は、データベース名を入力する。
以上のこと踏まえて入力したのが下図である。booksdbというデータベースファイルがない場合は、「Default Schema」には入力しない。パスワードは「Store in Keychain…」をクリックして入力する。ここで入力しておくと、接続のたびにパスワードを入力する必要がない。
[Test Connection]をクリックすると、下図のような警告が表示されるが、[Continue Anyway]をクリックする。
接続情報に問題がなく下図のポップアップウィンドウが表示されると接続できている。
[OK]をクリックする。
新しく接続情報が登録されている。あとは、この部分をクリックする。もういちど、警告が表示されるが、「Don’t show this message again」にチェックを入れて次回からは表示しないようにしておく。
[Continue Anyway]をクリックする。クエリー画面が表示されるので、ここにSQL文を入力する。
SQLを入力する際は補完機能が働くので、入力が少し楽である。ただ、DBeaverのようにテーブル名まで補完はしてはくれないのは残念だ。
SQL実行するにはCtrl+Enterである。実行結果は以下のとおりになる。
以上で終わりである。
日本語化について
最後に日本語化について少しお話をしておく。日本語化もできるようだが、ファイルは6年前から更新が停止している。適用するには問題が発生すると思われるので、適用しないようにしたほうがいいだろう。日本語化の記事も検索すれば出てくるので、どうしても英語は嫌だという人はやってみるといいだろう。
Linux mintにインストールされたMySQL Workbenchのmain-menu.xmlは以下の場所に配置されている。このファイルのkey=”caption”属性の部分を日本語化すればいいようである。
/usr/share/mysql-workbench/data
日本語化する場合は、オリジナルは必ず残しておくようにする。問題が起きたときに復元できるようにしておくためである。また、オススメしているわけではないので、自己責任において日本語化していただきたい。