Windows側のMySQL Workbenchから、WSL2上のUbuntuにインストールしたMySQLへ接続する方法をまとめました。
Ubuntu側 (WSL2)
MySQLのインストール
普通にUbuntuへMySQLをインストールする手順に従う。
https://takake-blog.com/wsl2-ubuntu2004-mysql/ を参考に進めた。
MySQLの起動コマンドは sudo service mysql start
MySQLの設定修正
■ MySQLのユーザを作成
外部のホストからログインできるようにするために、ホスト部分は%指定。ホストを固定したい場合はホスト名やIPアドレスを指定。
CREATE USER 'user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
CREATE SCHEMA some_schema CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
GRANT ALL PRIVILEGES ON `some_schema`.* TO 'user'@'%';
■ Listenするアドレスを0.0.0.0に修正
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
sudo service mysql restart
を実行してMySQL再起動
■ ifconfigコマンドを実行して接続先のIPアドレスを調べる
user@host:~$ ifconfig
Command 'ifconfig' not found, but can be installed with:
sudo apt install net-tools
自分の環境では、上記のメッセージが出て、ifconfigがインストールされていなかったので、sudo apt install net-tools
を実行してインストール。ifconfigを再実行
user@host:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.26.13.218 netmask 255.255.240.0 broadcast 172.26.15.255
inet6 fe80::215:5dff:fe08:be86 prefixlen 64 scopeid 0x20<link>
途中省略
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
以下省略
上記のeth0のinetで示されているIPアドレスを、MySQLへ接続する際のホストアドレスに指定する。
Windows側
MySQL WorkbenchのHostnameにeth0のinetで示されているIPアドレスを、MySQLへ接続する際ののホストアドレスを入力すればOK。
参考にしたページ
- https://superuser.com/questions/1536619/connect-to-mysql-from-wsl2
- https://github.com/mahmoudajawad/wsl-hacks/blob/master/wsl2-networking.md
- https://snowsystem.net/container/docker/docker-mysql-wsl-a5sql/
- https://www.youtube.com/watch?v=0emEc-QWhHI
- https://snowsystem.net/container/docker/docker-mysql-wsl-a5sql/
- https://stackoverflow.com/questions/54377052/how-to-connect-to-wsl-mysql-from-host-windows
コメント