Linux

데비안 리눅스 myriaDB 설치 후 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 에러

데비안 리눅스 myriaDB 설치 후에 그누보드 5 설치를 위해 sql 연결 작업을 진행해야 하는데,

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 에러가 발생하는 경우가 발생했다.

 

해결하고 보니 꽤나 복합적인 문제였는데,

 

1. 일단 위 에러는 myriaDB 혹은 mysql 서비스가 시작되어있지 않거나, 해당 디렉토리 경로에 mysqld.sock 파일이 없는 경우에 발생한다.

 

1-1 따라서, mysql 서비스를 시작해주거나,

1-2 mysqld.sock 파일의 경로를 찾아 /etc/mysql/my.conf 설정파일에서 socket = /var/lib/mysql/mysql.sock 부분을 수정해줘야 한다.

 

나같은경우는 1-1 이었는데, 그래서 서비스를 시작해주려고 systemctl을 실행하니 왠걸, 이번엔

 

Failed to connect to bus: No such file or directory

 

위와같은 에러가 발생한다.

 

도커 컨테이너에서 이런 현상이 주로 발생한다는데, /bin/bash의 PID가 1이 아니라서 system 데몬이 제대로 동작을 안한다는 소리.

 

그래서 ps -ef로 프로세스 목록을 보니 1번은 다른 프로세스가 점유중이고 bin/bash는 7009 번이었다.

이럴땐 1. 컨테이너를 재시작하거나, 2.service 명령어를 사용하면 된다.

 

1은 불가능한 선택지였기에, 2번을 선택하였는데 이번엔 service가 안깔려있어서 실행이 안된다 엌ㅋㅋㅋ

 

apt-get install sysvinit-utils

 

위 패키지를 설치하면 된다는데, 나같은 경우는 저걸 설치해도 실행이 안된다. 이 뭐..

 

그래서 일단 설치는 된 /usr/sbin/service 를 직접 실행시켜줬다.

 

/usr/sbin/service --status-all로 전체 서비스 상태를 보니 mysql이 꺼져있는 상태였다.

 

그래서 service mysql start 를 해주니 mysql이 켜졌고, 다시 mysql을 실행하면 이제 소켓 에러는 안뜬다.

 

근데 mysql 비밀번호를 모름 엌ㅋㅋㅋㅋㅋ

어쨋든 소켓 문제는 해결..

 

* 내용 추가

mysql 세팅까지 완료했으나, php와 mysql 연결을 위해 mysqli_connect 확장모듈 로드가 필요한데 도커 컨테이너 환경에서는 php.ini 수정이 불가하고, 외부에서 설정 변경 후 컨테이너를 다시 빌드해야한다.

내부에서 진행하려면 docker-php-ext-install mysqli 명령어 실행 후 재부팅 진행. 

 

계속 설치를 진행하던 중, sql 연결 부분에서 또 에러가 뜬다. 

이번엔 sql 관련 특정파일 중 Connect Error: No such file or Directory 에러가 뜨는 경우인데,

mysql 호스트 이름을 localhost가 아니라 127.0.0.1:3306(mysql 포트번호) 로 지정해주면 된다.