Linux

MySQL Workbenchでエクスポート時にmysqldump Version Mismatchが出る場合の解決策

はじめに

リモートサーバ上のMySQLデータベースの中身をちょっと確認したい時にMySQL Workbenchを使用しています。SSH経由での接続ももちろん可能で特に不満なく使えます。ただ、エクスポートする際に警告が表示されて解決に少しだけ時間かかってしまったので原因と解決手順をメモします。

環境と前提

ローカルのUbunu18.04上にインストールしたMySQL WorkbenchからSSH経由で接続したリモートサーバのMySQLデータベースをエクスポートした時に、「mysqldump Version Mismatch」という警告がでました。この警告を消すための手順をメモします。環境は以下です。

  • ローカルPCのOS : Ubuntu18.04
  • ローカルPCのMySQL : 末インストール
  • リモートサーバのOS : Ubuntu18.04
  • リモートサーバのMySQL : MySQL 5.7
  • ローカルPCのMySQL Workbenchのバージョン : 8.0.15

エクスポート時に表示された警告の内容

MySQL WorkbenchからリモートサーバのMySQLデータベースに接続し、エクスポートしようとしたところ、「mysqldump Version Mismatch」というタイトルで以下のようなメッセージが表示されました。

上記のメッセージ内容は、「MySQL Workbenchが使用するmysqldumpが対応しているMySQLのバージョンは8.0.15ですが、エクスポートしようとしているMySQLサーバのバージョンは5.7.25です。このバージョンの不一致があると、適切にデータがバックアップされない等の可能性があります。可能ならばMySQLのバージョンを揃えてください。」という内容になっています。
すなわち、このままでもエクスポートを実行できるが、何かしらのトラブルが起きるかもしれないと書かれています。

原因

警告メッセージの内容の通り、MySQL Workbenchで使用するmysqldumpが対応しているMySQLのバージョンと、エクスポート元であるリモートサーバのMySQLのバージョンが異なっていることが原因です。
mysqldumpは、簡単に言うとMySQLデータベースのバックアップ、復元(エクスポート、インポート)を行うためのコマンドになります。
そしてMySQL Workbenchとしては、mysqldumpが対応するMySQLおバージョンをエクスポート元のMySQLバージョンとあわせてほしいようです。
以降に解決策を載せます。

解決策

MySQL Workbenchで使用するmysqldumpが対応するMySQLのバージョンをリモートサーバのMySQLのバージョンと揃えることで解決できます。
具体的な手順としては以下になります。

  • 1. リモートサーバのMySQLのバージョンと同じMySQLバージョンに対応するmysqldumpをローカルPCにインストールする
  • 2. ローカルPCにインストールしたmysqldumpを使うようMySQL Workbenchの設定を変更する

上記手順をそれぞれ後述します。

1. リモートサーバのMySQLのバージョンと同じMySQLバージョンに対応するmysqldumpをローカルPCにインストールする

mysqldumpは、その他に色々なコマンドや便利ツールを含むmysql-clientというパッケージの中に含まれています。
したがって、Ubuntuで以下のようにリモートサーバのMySQLサーバのバージョンと同じ5.7のmysql-client-5.7をインストールすることでこの手順は完了です。

$ sudo apt install mysql-client-5.7

実際に、上記コマンドを実行した後でmysqldumpのバージョンを確認してみると、以下のように表示されると思います。

$ mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.25, for Linux (x86_64)

mysqldump自体のバージョンが10.13で、mysql-clientのバージョン、すなわち対応するMySQLのバージョンががDistrib 5.7.25になっていることを確認できます。

2. ローカルPCにインストールしたmysqldumpを使うようMySQL Workbenchの設定を変更する

あとはMySQL Workbenchの設定から、インストールしたmysqldumpのパスを指定します。
インストールしたmysqldumpのパスは、以下のコマンドで確認できます。

$ which mysqldump
/usr/bin/mysqldump

次にMySQL Workbenchを起動し、メニューの「Edit」→「Prederences…」をクリックします。クリックすると以下の様なウィンドウが開くので、以下のように「Administration」を選択します。
さらに「Administration」の「Path to mysqldump Tool」の右端にある「…」をクリックします。(以下画像内の赤矢印先)

すると、以下のようにファイル選択ウィンドウが表示されるので、ここでmysqldumpを選択し、「開く」をクリックします。ただし、このウィンドウの見え方は各環境によって多少異なる可能性があります。

mysqldumpを選択すると、以下のように「Path to mysqldump Tool」に選択したmysqldumpのパスが表示されます。最後にウィンドウ右下の「OK」をクリックします。

以上で作業は完了です。

エクスポートしてみる

上記作業後、実際にエクスポートしてみると、警告は表示されずに以下のような画面が表示され無事にエクスポートできると思います。

まとめ

MySQL Workbenchで同じような警告が表示されて気になった方の助けとなれば幸いです。

SPONSORED LINK

コメントを残す

メールアドレスが公開されることはありません。