WSL에서 MySQL 서버 설치 + 오류 해결


WSL에서 MySQL 서버를 설치해보았다.

MySQL Server 설치


sudo apt update
sudo apt install mysql-server

!! 아래와 같이 update가 제대로 안되는 경우, 현재 컴퓨터 시간 동기화를 위해 sudo hwclock —hctosys 명령어를 입력해 해결하면 된다.

Get:5 /linux/chrome/deb stable Release [943 B]             
Get:6 http://dl.google.com/linux/chrome/deb stable Release.gpg [819 B]         
Get:4 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] 
Get:7 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]    
Reading package lists... Done                                 
E: Release file for http://dl.google.com/linux/chrome/deb/dists/stable/Release is not valid yet (invalid for another 2h 45min 28s). Updates for this repository will not be applied.
E: Release file for http://us.archive.ubuntu.com/ubuntu/dists/bionic-updates/InRelease is not valid yet (invalid for another 4h 34min 33s). Updates for this repository will not be applied.
E: Release file for http://us.archive.ubuntu.com/ubuntu/dists/bionic-backports/InRelease is not valid yet (invalid for another 1h 22min 16s). Updates for this repository will not be applied.
E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease is not valid yet (invalid for another 4h 32min 36s).
sudo hwclock --hctosys

헤매기. root 비밀번호 설정


내가 참고한 설치 가이드에서는 sudo apt install mysql-server 명령어를 실행하면 설치 과정에서 root 사용자의 비밀번호를 설정할 수 있는 부분이 나온다고 했는데, 나는 따로 뜨지 않고 설치가 완료되어서 추가로 비밀번호를 설정하기 위해 mysql_secure_installation 명령어를 실행하였다.

mysql_secure_installation

!! 오류1. mysql_secure_installation 패스워드 설정

Untitled

명령어를 실행하면 나오는 root 비밀번호 창이다. 초기에는 비밀번호가 설정되지 않아서 Enter만 치면 된다고 하는데 나는 에러가 발생했다.

시도방법 1. mysql-server 재설치 → 실패

mysql은 uninstall로는 삭제가 안되어서 구글링을 통해 이런저런 잡다한 파일들을 전부 삭제하고 동일한 위의 동일한 설치 명령어를 시도해보았지만 계속해서 에러가 발생했다.

시도방법 2. mysql start

service mysql start 명령어로 문제 해결했다는 글을 보고 시도했으나 이번엔 그대로 에러가 떴다.

혹시 몰라 아래와 같이 sudo를 추가하고 다시 해보니 비밀번호 설정 명령어가 작동이 되었다.

sudo service mysql stop
sudo service mysql start

sudo mysql_secure_installation

Untitled 1

실행 과정 중에서 Yes, No를 입력하라고 하는데, 이 부분은 암호 강화를 위한 플러그인을 추가하겠는지에 대한 내용이므로 나는 Y를 눌러 진행하였다.

!! 오류2. 패스워드 설정 불가

Untitled 2

… Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn`t store authentication data in the MySQL server. please consider using ALTER USER instead if you want to change authentication parameters.

어이없게도 비밀번호를 생성하려고 하니 root 권한이 아니므로 생성이 불가능하다는 오류가 떠버렸다. 화를 가라앉히고 사진의 ALTER USER를 활용하여 비밀번호를 생성하기 위해 또다시 구글링을 해보았다.

root 비밀번호 오류 해결


참고 - [Ubuntu] mysql 설치(wsl에서의 방법포함) (tistory.com)

비밀번호를 설정하려면 sudo mysql 명령어로 mysql에 접속해 설정해주면 되는데, 나는 중간 과정에서 새로운 오류가 계속해서 나는 바람에 mysql을 완전히 삭제하고 재설치 해주었다. 그리고 아래 명령어로 다시 설정 화면으로 들어갔다. ubuntu와 다르게 wsl에서는 mysql이 켜져있으면 설정하는 과정에서 오류가 많이 나는 듯 싶다.

만약 sudo mysql로 정상 접속이 가능하다면 바로 아래 명령어는 넘어가도 된다.

sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start

sudo mysql

Untitled 3

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '설정할 비밀번호';

mysql에 접속하여 위의 명령어에서 설정해줄 비밀번호를 입력하여 코드를 작성하여 Query OK라고 나오면 정상적으로 비밀번호가 저장이 되었다는 뜻이다.

이후에는 다시 sudo mysql_secure_installation 명령어를 입력해 방금 설정한 비밀번호를 입력하면 root 비밀번호를 바꿀 것인지에 대해 묻는다.(;;) no를 입력하여 바꾸지 않겠다고 하고, 나머지 설정에는 y를 입력하여 초기 세팅을 마쳤다.