mariadb 10.11 버전 설치를 기준으로 작성되었습니다.

mariadb설치 및 실행은 아래 사이트를 참고해주세요.
https://mariadb.com/kb/ko/installing-mariadb-on-macos-using-homebrew/

mariadb 특정 버전 설치 : brew install mariadb@10.11

brew services start 후 상태가 stop으로 나오면

brew link mariadb@10.11 —force

명령어 작성하고 엔터하면 연결됩니다.

실행되지 않을 경우,

ps aux | grep mysql 해서 나오는 프로세스

sudo kill [pid] 해서 모두 종료합니다.

ps aux : 시스템에 동작중인 모든 프로세스를 소유자 정보와 함께 다양한 정보를 출력합니다.

실행 중인 프로세스는 kill 해도 삭제되지 않습니다.

명령어 실행이 어려우시면 재부팅하시면 됩니다.

서비스 실행 후 mysql 등의 mariadb 접속 실행 명령어를 입력시

zsh: command not found: mysql 이런 문구가 나오는 것은

Homebrew 관련 오류 이므로

vi ~/.zshrc

로 설정파일을 연 후,

echo 'export PATH="/opt/homebrew/opt/mariadb@10.11(설치한 버전)/bin:$PATH"'

수정 한 후

source ~/.zshrc

복사 붙여넣기 하면 됩니다.

그래도
zsh: command not found: mysql 이런 문구가 나오면

/opt/homebrew/opt/mariadb@10.11(설치한 버전)/bin 위 경로에 가서

./mysql -u root

직접 실행시켜주면 접속됩니다.

[MySQL/MariaDB] - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러

https://blog.naver.com/islove8587/221970366883 참고
https://linked2ev.github.io/database/2021/06/11/MySQL,-MariaDB-ERROR-2002-(HY000)-Can't-connect-to-local-MySQL-server-through-socket-'tmp-mysql.sock'-(2)/ 참고

1) 원인
mysql.sock 파일이 경로 및 심볼릭링크 정확하지 않아서 발생하는 오류

2) 원인
mysql.sock 파일에 대한 권한 문제 오류

3) 원인
실질적인 설정 문제 일 수도 있으나, 설정 없이 갑자기 안되는 경우에는 Mac 업데이트로 인한 my.cnf 손상이나 mysql 실행 도중 손상되서 mysql.sock 문제가 발생 한 이유이다.

또는 구글링을 해서 여러 mysql 설정이 기술 된 my.cnf파일을 mysql, mariadb 또 버전이나 OS 환경을 고려하지 않고 무작정 가져다 사용하면 에러 발생가 발생 할 수 있다.

이럴 경우에는 data 백업 한 후에 재 설치해야 한다.

  1. mysql 실행
  1. mysql.sock 위치 찾기
    $ mysql_config --socket
  1. my.cnf 설정된 socket 경로를 심볼릭링크 설정

$ sudo ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

$ sudo ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
mysql.sock 심볼릭링크 확인

$ ls -al
lrwxr-xr-x 1 linked2ev admin 25 6 20 16:16 mysql.sock -> /var/lib/mysql/mysql.sock
/tmp/mysql.sock 라는 원본파일이 /var/lib/mysql/mysql.sock 에 Symbolic Link가 연결되었다는 의미

2) 해결

디렉토리에 권한 변경

$ sudo chmod -R 777 /var/lib/mysql

파일 소유자/소유자 그룹 변경

$ chown <사용자>:<사용자그룹> <파일>
$ sudo chown root:admin /var/lib/mysql

내가 해결한 방법
mac 에 /tmp/mysql.sock 를 /var/lib/mysql/mysql.sock 로 심볼릭 링크 시켜주고 tmp 안의 mysql.sock 삭제

profile
오리온 과자를 좋아하는 초급 개발자입니다:) #java #iOS #Mac

0개의 댓글