はじめに
「wsl2のUbuntu上のMySQL」と「Windows上のMySQL」がある状態で、WindowsPCにインストールしたMySQL WorkBenchからそれぞれのMySQLにアクセスするためにやったことを残しておきます。
環境
それぞれのバージョンは下記の通りです。
WindowsのMySQL
Microsoft Windows [Version 10.0.19043.1889]
mysql Ver 8.0.29 for Win64 on x86_64 (MySQL Community Server - GPL)
※MySQL WorkBenchをインストールするときに一緒にインストールした気がします。。
UbuntuのMySQL
Ubuntu 18.04.6
mysql Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using EditLine wrapper
インストール手順はこちらの記事も参考にしました。
試したけどダメだった方法
- rootユーザーじゃダメ説
- 127.0.0.1じゃダメでlocalhostにしたら行ける説
- localhostでもだめで、wslのIPを使わないといけない説
※解決策を探す中で検証しましたが、これではアクセスできるようにはなりませんでした。
解決策
今回は、WindowsとUbuntuのMySQLの使用するポートを重複しないようにすることで接続することができました。具体的にはWindowsは3307ポート、Ubuntuは3306ポートを使用します。
Windowsのポート変更する手順
起動ポートは設定ファイルmy.ini
を編集すれば、変更ができます。
※管理者権限で起動したコマンドプロンプトからメモ帳でファイルを開くと、簡単に編集が可能です。
C:\Users\kuromame_09> notepad "C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
portを3307に変更したら、忘れずに保存します。
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]
# pipe=
# socket=MYSQL
port=3307
WindowsのMySQLの疎通確認
Portを3307にしてTest Connectionを実行します。
3307ポートでアクセスできているようです。
UbuntuのMySQLの疎通確認
Portを3306にしてTest Connectionを実行します。
こちらは、3306ポートでアクセスできています。
最後に
ポートを変えてから再度、試してみましたが、rootアカウントで問題ないですし、127.0.0.1でもlocalhostでもアクセスできました。ちなみに、wslのIPを設定しても接続はできません。
WindowsのMySQLをアンインストールするなどの方法もきっとあったのですが、残したまま両方アクセスできる方法があればそれでいいなと思い、今回、ポート変更でそれぞれのMySQLへのアクセスを試みました。もちろん場合によっては、Ubuntu上のMySQLのポートを3307にするのでもいいと思います。
参考