관리 메뉴

CS

WSL의 MySQL에 Windows에서 MySQL Workbench로 접속하기 본문

기타

WSL의 MySQL에 Windows에서 MySQL Workbench로 접속하기

vcxz 2023. 8. 4. 18:36

WSL에서 MySQL을 사용하고 있을 때, 이를 편하게 보기 위해 WSL을 켜지 않고 Windows에서 바로 MySQL Workbench를 통해 접속하는 방법입니다.

 

 


MySQL을 실행하는 WSL의 IP 주소 확인

MySQL Workbench에서 MySQL에 접속하려면 호스트명이 필요하기 때문에 WSL의 IP 주소를 확인합니다.

Ubuntu 기준입니다.

# wsl
ifconfig

# ifconfig가 없을 시 net-tools 설치
sudo apt-get install net-tools

IP 주소를 확인하기 위하여 ifconfig를 사용합니다. ifconfig는 IP 주소 등을 확인할 때 자주 사용하는 프로그램입니다. 프로그램이 없는 경우 net-tools를 설치하면 사용할 수 있습니다.

 

ifconfig를 사용하면 여러 줄의 텍스트가 나오는데, 거기서 인터넷에 연결하는 네트워크명을 찾아 거기 있는 inet 항목을 확인합니다. inet 옆에 있는 숫자는 IPv4 주소로, 이걸 Workbench에서 호스트명으로 사용합니다.

 

 

외부에서 MySQL에 접속할 수 있는 유저 생성

MySQL에 접속할 때 특정 유저(계정)로 로그인하는데, 이는 Workbench를 사용할 때도 마찬가지입니다. 그리고 MySQL에서는 유저를 생성할 때 허용 접근 위치를 정할 수 있고, 로그인할 때 접근을 시도하는 위치가 정해진 위치인지 검사합니다.

그런데 WSL이 Windows 위에서 돌아가긴 해도 WSL에서 Windows를 외부로 취급하기 때문에 MySQL 유저를 생성할 때 외부에서 접근할 수 있도록 설정해야 합니다.

# wsl
mysql -u root -p

설정을 해야 하기 때문에 웬만하면 root 계정으로 MySQL에 접속합니다.

# mysql
create user '유저명'@'%' identified by '비밀번호';

유저를 생성합니다.

- '유저명'@'%': @ 뒤에 접속할 수 있는 위치를 기재합니다. 'localhost'를 입력할 경우 내부에서만 접근할 수 있고, '%'의 경우 어느 곳에서도 접근할 수 있습니다. 특정 IP 주소를 입력하면 그것만 허용할 수 있고, IP 주소 중간에 %를 붙여 (예시: '192.168.%') 특정 대역을 모두 허용할 수 있습니다.

- 비밀번호는 설정하지 않아도 되지만, 비밀번호가 없으면 오히려 로그인이 불편해지는 상황도 있는 것 같아 설정하는 게 좋은 것 같습니다.

# mysql
grant all on '데이터베이스명'.* to '유저명'@'%';

그리고 사용하려는 데이터베이스에 대한 권한을 해당 유저에게 줍니다. 그래야 해당 데이터베이스에 접근할 수 있습니다.

- all: 모든 권한을 의미합니다. 'all privileges'라고 적어도 됩니다. 특정 권한만 줄 수도 있습니다. 자세한 내용은 MySQL Privileges Provided by MySQL 문서를 참고하세요.

- '데이터베이스명'.*: MySQL에서 '*'은 주로 전부를 의미하므로, 해당 데이터베이스에 있는 모든 테이블을 말합니다. '*'가 아닌 특정 테이블만 적으면 해당 테이블에 대한 권한만 얻습니다.

 

 

MySQL Workbench에서 MySQL 연결 생성

호스트명을 알아냈다면 이제 Workbench에서 새 연결을 생성합니다.

MySQL Workbench의 MySQL Connection 생성 창

- Connection Name: 연결에 이름을 붙이는 건데 자유롭게 정하면 됩니다.

- Connection Method: 연결 방법입니다. 여기서는 IP 주소를 통해 연결하기 때문에 'Standard (TCP/IP)'로 합니다.

- Hostname: 호스트명으로, MySQL이 실행되고 있는 장치를 말합니다. 연결 방법을 TCP/IP로 하기 때문에 해당 장치의 IP 주소를 적으면 됩니다. 위에서 확인한 WSL의 IPv4 주소를 입력합니다.

- Port: MySQL의 포트 번호입니다. MySQL의 기본 포트 번호는 3306으로 따로 수정하지 않았다면 3306으로 쓰면 됩니다.

- Username: MySQL에 접속하는 유저명입니다.

- Default Schema: 기본적으로 접속할 데이터베이스를 의미합니다. 사용할 유저가 해당 데이터베이스에 대한 권한이 있어야 합니다.

 

필요한 값을 채운 후 'Test Connection'으로 접속 여부를 확인한 후 성공하면 'OK'를 눌러 접속을 저장할 수 있습니다.