[WSL2] Mysql 자동실행 설정하기
[wsl2 설치가 안된 분은 여기를 참고하자]
나는 이번년도에 wsl2를 알게 되어 wsl2을 통해 편하게 개발을 진행하였다.
그런데, wsl2가 아직 여럿 불편한 점이 있었고 그 중 하나가 wsl2의 자동 실행 미지원이다.
wsl2는 컴퓨터 시작시 자동 실행을 지원하지 않아 수동으로 ssh
나 mysql
, nginx
와 같은 프로그램들을 실행시켜줘야하는 불편함이 있었다.
그래서 정말 많은 구글링과 삽질끝에 해결한 방법을 공유하고자 글을 썼다.
셋팅 방법
셋팅 방법은 생각보다 별거 없었고 원리는 window에서 컴퓨터 시작할때마다 스크립트 파일을 통해 자동으로 실행 시켜주는 것이다.
방법은 여러 가지가 있는데 아래 방법중 한가지만 택해서 진행하면 된다.
-
윈도우의 시작 - 모든 프로그램 - 시작 프로그램
폴더에 파일 등록 -
로컬 그룹 정책 (gpedit.msc)
에 스크립트 파일 등록 -
작업 스케줄러
에서 작업 등록
🔸 공통 작업
1 .bat파일 (스크립트 파일) 작성
우선 자동 실행을 위해 프로그램들을 실행시켜줄 명령어들을 모은 스크립트 파일을 작성해야한다.
메모장을 열고 본인이 자동실행 시킬 프로그램 명령어를 아래와 같이 앞에 wsl
을 붙여 입력하면 된다.
wsl sudo service mysql start
wsl sudo service ssh start
wsl sudo service nginx start
wsl sudo service docker start
wsl sudo service apache2 start
그 후에 저장을 하는데 저장시 주의사항으로 아래 사진과 같이 모든 파일 형식
에 파일이름
뒤에 .bat
을 붙여 저장하면 된다.
귀찮으신분은 아래 파일을 다운받아 고쳐 사용해도 된다.
파일 저장은 편한곳에 하면 되는데 나는 C
바로 밑에 wsl2-setting
폴더를 하나 만들어 저장했다.
2 sudo 권한 service 명령어 비밀번호 해제
된 해당 파일을 실행시키면 sudo권한 실행을 위해 비밀번호 입력때문에 자동실행이 막히게 되기 때문에 비밀번호를 해제해줘야 자동실행이 된다.
window 검색창에 bash.exe
를 검색하여 실행시키거나, wsl2
를 실행시켜 sudo visudo
명령어를 입력하여 설정파일을 열면 nano편집기로 열릴텐데 아래 명령어
를 추가하고 ctrl+s
로 저장하고 ctrl+x
를 눌러 빠져나오자.
%sudo ALL=NOPASSWD: /usr/sbin/service
모든 service명령어를 비밀번호 해제하는게 나는 두렵다(?)라고 생각하시는 분은 아래와 같이 해당 명령어만 비밀번호를 해제 해도 된다.
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service mysql *
%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh *
%sudo ALL=(ALL:ALL) ALL
명령어보다 아래에 작성해야 한다는 점이다.여기서부터는 3가지 방법 중 한가지만 따라하면 된다.
▪ 시작 프로그램 폴더에 파일 등록
▪ 로컬 그룹 정책 (gpedit.msc)에 스크립트 파일 등록
▪ 작업 스케줄러 에서 작업 등록
나는 gpedit.msc
에 파일을 등록하는 방법으로 설정했다.
🔸 1번방법 : 시작 프로그램 폴더에 파일 등록
window + R
을 눌러 shell:startup
을 입력하여 폴더를 열어 아까 만들어 두었던 .bat
파일을 이 폴더 안에 복사
해주면 된다.
🔸 2번방법 : gpedit.msc에 파일 등록
윈도우 검색창에 gpedit.msc
를 검색해서 클릭하면 아래와 같이 열릴 것이다.
사진을 보면 스크립트 (시작/종료) 가 있고 (로그온/로그오프가) 가 있는데
시작
과 로그온
은 컴퓨터가 켜졌을때 실행되는 것으로 동작은 비슷하나 시작이 속도가 조금더 빠르다고 한다.
시작은 켜지면서 실행되고, 로그온은 컴퓨터가 다켜져 바탕화면이 보일때 동작한다고 한다.
하지만, 시작
으로 설정해놓고 컴퓨터에 비밀번호가 걸려있으면 이상하게 작동이 잘 되지 않아서, 로그온
으로 등록하였다.
스크립트(로그온/로그오프)
를 클릭하고 로그온
을 더블클릭하면 위에와 같은 창이 열리는데 PowerShell 스크립트
가 아닌 스크립트
에 아까 만들어 두었던 .bat
파일을 넣어줄 것이다.
추가
버튼을 클랙 했으면, 아래와 같은 창이 뜨는데 찾아보기
버튼을 클릭하여 .bat
파일을 넣어주면 된다.
매개변수
는 작성해줄 필요 없다.
🔸 3번방법 : 작업 스케줄러에 작업 새로만들기
윈도우 검색창에 작업 스케줄러
를 검색하여 스케줄러를 띄운 후 작업만들기를 클릭하고 설정들을 아래와 같이 해주면된다.
1. 일반
이름은 마음대로 지어도 상관없으며, mysql을 자동실행할 프로그램이라 mysqld라 지었고, 간단하게 설명도 작성해주면 된다.
여기서 중요한 것이 사용자 또는 그룹 변경
을 클릭해서 SYSTEM으로 실행을 시켜줘야 백그라운드로 동작한다.
변경을 안해주면 부팅시마다 까만 cmd창이 꺼졋다 켜지는 것을 볼 수 있다.
안해줘도 무방하나 상당히 거슬리기에 SYSTEM으로 실행시키는 것을 추천드린다.
2. 트리거
트리거는 새로만들기를 클릭하여
작업시작
에서 로그온할 때
를 클릭하고 확인을 누르면 된다.
시작할 때
가 로그온 할때
보다 살짝 더 빠르다고 하는데, 노트북에 비밀번호가 걸려있는 경우에 trigger가 작동하지 않기도 해서 로그온 할때
를 추천한다.
3. 동작
찾아보기
를 클릭하여 아까 만들어두었던 .bat
파일을 등록시켜주면 된다
4. 기타 설정
조건
이나 설정
등 보면서 필요없는 사항들은 체크,체크 해제 해주면된다.
나는 조건
에 충전기 연결 안되도 자동 실행 되게 전원
부분은 모두 해제 했다.
재부팅 후 확인
재부팅 후 mysql 접속을 시도해보면 잘 접속이 되는 것을 볼 수 있다.