たれながし.info

とあるITエンジニアの備忘録

MySQL5.7でX Protocolを有効化する


はじめに

MySQLの「X Protocol」とは、MySQL 5.7.12 以降で実装された新しいクライアントプロトコルです。
ポート番号は33060/tcpを使用します。※設定で変更可

参考情報)
Understanding MySQL X (All Flavors)

MySQL8以降ではデフォルト有効、MySQL5.7ではデフォルト無効となっています。
MySQL5.7で有効にするにはX Pluginをインストールする必要があります。

この記事では、MySQL5.7でX Pluguinをインストールして、X Protocolを有効にする方法を記載します。

X Protocolの有効化

環境について

RHEL8.7にインストールした、MySQL5.7を使用しています。
環境の準備方法については、以下の記事で説明しています。

tarenagashi.hatenablog.jp

有効化の実施

X Protocolを有効化します。
手順はMySQL公式の手順を参照しました。

参考情報)
MySQL :: MySQL 5.7 Reference Manual :: 19.2 Setting Up MySQL as a Document Store

・MySQLに接続する
# mysql -u root -p

・x pluginのインストール
mysql> INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';

・x pluginのインストール確認
mysql> show plugins;
+----------------------------+----------+--------------------+----------------------+---------+
| Name                       | Status   | Type               | Library              | License |
+----------------------------+----------+--------------------+----------------------+---------+
…(省略)…
| mysqlx                     | ACTIVE   | DAEMON             | mysqlx.so            | GPL     |
+----------------------------+----------+--------------------+----------------------+---------+

プラグインのインストールが終わると33060/tcpで待ち受けが開始されている

# ss -atnp | grep mysql
LISTEN 0      70                 *:33060               *:*    users:(("mysqld",pid=28081,fd=49))              
LISTEN 0      80                 *:3306                *:*    users:(("mysqld",pid=28081,fd=21))

動作確認

MySQL Shellを使って動作確認します。

参考情報)
MySQL :: MySQL Shell 8.0 :: 2.2 Linux への MySQL Shell のインストール
MySQL :: MySQL 8.0 リファレンスマニュアル :: 20.3.1 MySQL Shell

MySQL Shellをインストールする

# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# yum install mysql-shell

mysqlshコマンドでX Protocolに接続し、SQLを実行してみます。
SQL実行時は「\sql」でSQLモードに変更、終了は「\exit」
※不要な出力は記載を省略している

# mysqlsh root@localhost:33060

 MySQL  localhost:33060+ ssl  JS > \sql
 MySQL  localhost:33060+ ssl  SQL > select now();
+---------------------+
| now()               |
+---------------------+
| 2024-03-16 19:41:07 |
+---------------------+

 MySQL  localhost:33060+ ssl  SQL > \exit
Bye!

プロトコルに準拠していれば、MySQL Shell以外の他クライアントも使用可能と思われる。