WSL 환경에서 DB 설정 방법에 대해 정리했습니다.

우선 기본적으로 윈도우 환경이며, WSL을 이용해 우분투 18.04 버전을 설치합니다.

mariadb-server 설치 및 실행

패키지를 최신으로 업데이트 합니다.

1
2
sudo apt-get update
sudo apt-get upgrade

우선 mariadb-server를 설치합니다.

1
2
3
sudo apt install mariadb-server

sudo mysql -u root -p # 실행

DB 저장소 경로 변경 방법

만약 db의 저장소를 변경하고 싶다면 아래와 같이 진행하면 됩니다.
우선 db의 경로를 /home/data/mysql으로 가정하겠습니다.

  1. db 접속 후 현재 db의 경로를 확인합니다.

    1
    
    SELECT @@ datadir;
    

    images

  2. db 정지

    1
    
    sudo service mysql stop
    
  3. 저장소 위치 변경

    1
    2
    
    sudo mkdir -p /home/data/ # 폴더 생성
    sudo rsync -av /var/lib/mysql /home/data/ # 기존 db 정보 복사 동기화
    
  4. db 권한 부여 설정

    1
    
    sudo chown -R mysql:mysql /home/data/mysql
    
  5. db 경로 변경

    아래와 같이 명령어로 진입 후 사진처럼 경로를 변경합니다.

    images

    1
    
    sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
    
  6. home 보안 해제

    아래의 경로에서 사진과 같이 설정합니다.

    images

    1
    
    sudo vim /lib/systemd/system/mariadb.service
    

WSL에 활성화 돼 있는 DB 로컬에서 접속 방법

WSL에 있는 DB를 Heidi SQL 툴 등을 이용해 접속하려면 아래와 같이 설정하면 됩니다.

  1. 외부 포트 접속 허용

    아래 경로의 mariadb 설정 파일의 포트를 0.0.0.0 으로 변경합니다.

    1
    
    sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
    
  2. mysql restart

    1
    
    sudo service mysql restart
    
  3. 외부 접속 포트 확인 후 접속

    WSL 환경에서 ip addr명령어를 입력하면 172...* 로 시작하는 포트가 있습니다. 해당 포트를
    로컬에서 접속하면 됩니다.

  4. 만약 계정 권한이 없다면 권장되지는 않지만 아래와 같이 특정 계정에 모든 권한을 부여해 접속할 수 있습니다.
    아래와 같은 경우는 user라는 아이디와 0000패스워드로 권한을 부여했습니다.

    1
    2
    
    CREATE USER 'user'@'%' IDENTIFIED BY '0000';
    GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
    
    1
    2
    3
    
    sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
    sudo systemctl restart mysql # 이게 안되면
    sudo service mysql restart
    

WSL Maria DB 삭제 방법

mariadb server가 설치 중 잘못돼서 엉키면 아래와 같이 삭제할 수 있습니다.

설정파일도 모두 삭제하기 위해 purge 사용 후 Remove all MariaDB databases? 문구 나오면 예를 눌러주시면 됩니다.

1
sudo apt-get purge mariadb-*

남아있는 의존성 패키지 제거

1
sudo apt autoremove

mysql 관련 패키지 설치 확인

1
dpkg -l | grep mysql

images

제 경우 위와 같이 mysql-common이 설치돼 있어 제거했습니다.

  1. 데이터베이스 파일도 함께 삭제하고 싶다면, 다음 명령어를 입력하세요.
1
2
3
4
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
sudo rm -rf /var/log/mysql.*
sudo rm -rf /var/log/mysql

위 명령어를 실행하면 /var/lib/mysql 디렉토리와 하위 파일들이 모두 삭제됩니다. 이 디렉토리는 mariadb-server의 데이터베이스 파일이 저장되는 디렉토리입니다.

위와 같이 명령어를 실행하시면 mariadb-server를 삭제할 수 있습니다. 다만, 데이터베이스 파일까지 모두 삭제하시면 해당 데이터베이스 파일에 저장된 모든 데이터가 삭제되므로, 주의하시기 바랍니다.

경고

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2 “No such file or directory”)

만약 위와 같은 에러가 발생하면 아래와 같이 db를 재시작해주시면 됩니다.

1
sudo service mysql restart