[MariaDB] 5. MySQL Socket, mysql.sock 위치 및 설명
in Database on MySQL/MariaDB
MySQL/MariaDB 사용시에 MySQL Socket, mysql.sock 개념과 위치 확인 관련 포스팅
본인은 Mac OS에서 Homebrew 로 MariaDB 10.5 이상을 설치한 경우이다.
1. mysql.sock 이란?
mysql.sock 이란 Unix Domain Socket으로 다른 컴퓨터의 프로세스와는 통신하는게 아닌 같은 컴퓨터 내의 프로세스끼리 통신을 위해 사용되는 일종의 IPC이다.
mysql.sock 은 MySQL의 서버프로그램(mysqld, 데몬)과 클라이언트 프로그램(mysql) 이 서로 다른 프로세스로 되어있으며 두 프로세스가 서로 통신을 위한 것이다.
Mysql은 TCP/IP 와 Unix Domain Socket 두가지를 모두 사용할 수 있으며 보통 TCP/IP는 서버프로그램과 클라이언트 프로그램이 다른 서버에 있을 때 사용되며 같은 서버일 때는 2가지 방법을 사용 가능하며
Unix Domain Socket은 파일을 이용해서 접속을 하는데 이떄 사용되는 파일이 mysql.sock 파일이며, mysqld가 실행될 때만 생성되고 종료되면 없어지는 파일
이다.
1-1. mysql.sock 관련 오류
$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
mysql.sock 파일은 클라이언트와 서버 모두 접근가능하고 권한이 있어야한다.
대부분 mysql.sock 오류는 socket관련 에러가 발생한다.
2. mysql.sock 파일 위치 확인
mysql/mariadb 를 실행한 후에 명령어 mysql_config --socket
로 mysql.sock 파일을 확인 할 수 있다.
추후에 설정에 따른 발생 되는 에러를 해결하기 위해서는 알고 있어야 할 개념이다.
$ mysql_config --socket
/tmp/mysql.sock
$ cd /tmp
$ ls -l
srwxrwxrwx 1 linked2ev admin 0 6 20 12:40 mysql.sock
[참고]
- https://antamis.tistory.com/9