WSL에서 mysql-server 설치 오류(Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2))

jiffydev·2021년 2월 12일
1

https://medium.com/@alef.duarte/cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysqld-sock-155d580f3a06

위 링크에서 확인하면

sudo /etc/init.d/mysql start

를 실행하면 된다고 한다.

하지만 실행하면

-su: 19: /etc/profile.d/wsl-integration.sh: cannot create //.cache/wslu/integration: Directory nonexistent

이런 에러가 떠서
https://github.com/wslutilities/wslu/issues/101 여기를 찾아보니

/etc/profile.d/wsl-integration.sh 파일을 에디터로 편집해야 한다고 한다.
내용은 링크에 나와있듯이, 파일의 최상단(WSL_INTEGRATION_CACHE=$HOME/.cache/wslu/integration 위)에

if [[ "${HOME}" == "/" ]]; then
  exit 0
fi

위와 같이 적어준다.

그리고 혹시 모르니 터미널을 한번 종료해주자.

그러면 sudo /etc/init.d/mysql start를 실행해도 문제가 없다.

그런데 mysql 재시작을 위해
sudo /etc/init.d/mysql restart 를 실행하면

/etc/profile.d/wsl-integration.sh: [[: not found 이런 에러가 떴는데, 찾아보니 bash가 아닌 shell을 사용하고 있을 때 문법이 달라 나타난다고 한다.(필자는 zsh 사용중)
그래서 위의 if [[ "${HOME}" == "/" ]]
if [ "${HOME}" = "/" ] 처럼 수정하니 해결되었다.

마지막으로 발생한 에러는 No directory, logging in with HOME=/ 에러였는데,
이는 위의 깃허브 링크에서 가장 밑을 확인하면 해결방법이 나와있다.

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

위처럼 실행해주면 재시작도 잘 되는 것을 볼 수 있다.

profile
잘 & 열심히 살고싶은 개발자

0개의 댓글