이 문제를 해결하기 위해 많은 시간을 보냈고이 오류를 찾을 때 항상이 페이지로 돌아 왔기 때문에 누군가가 내가 잃어버린 시간을 절약하기를 바라면서 여기에 솔루션을 남겨 둘 것입니다. 제 경우에는 MySql이 아닌 mariadb를 사용하고 있지만이 솔루션을 필요에 맞게 조정할 수 있습니다.
내 문제
동일하지만 내 설정이 약간 다릅니다 (mysql 대신 mariadb).
homebrew와 함께 mariadb 설치
$ brew install mariadb
데몬 시작
$ brew services start mariadb
연결을 시도했지만 위에서 언급 한 오류가 발생했습니다.
$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
내 솔루션
이 주석 에서 제안한대로에서 my.cnf
사용 하는 파일을 찾으십시오 .mysql
$ mysql --verbose --help | grep my.cnf
/usr/local/etc/my.cnf ~/.my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
Unix 소켓 파일이 실행중인 위치를 확인합니다 (대부분 여기에 설명 된대로 ).
$ netstat -ln | grep mariadb
.... /usr/local/mariadb/data/mariadb.sock
(당신은 원할 수 있습니다 grep mysql
mariadb 대신에 )
찾은 소켓 파일을 추가합니다 ~/.my.cnf
(필요한 경우 파일 생성) ( 위에서 -command를 ~/.my.cnf
실행할 때 나열 되었다고 가정 mysql --verbose ...
).
[client]
socket = /usr/local/mariadb/data/mariadb.sock
mariadb를 다시 시작하십시오.
$ brew services restart mariadb
이 후 mysql을 실행하고 다음을 얻을 수 있습니다.
$ mysql -uroot
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
그래서 대신 수퍼 유저 권한으로 명령을 실행하고 암호를 입력 한 후 다음을 얻었습니다.
$ sudo mysql -uroot
MariaDB [(none)]>
노트:
소켓을 추가해야하는 그룹에 대해 잘 모르겠습니다. 먼저 [클라이언트-서버]에 소켓을 추가했지만 [클라이언트]로 충분하다고 생각했습니다. 그래서 나는 그것을 변경했지만 여전히 작동합니다.
실행할 때 mariadb_config | grep socket
:
실제 장소 (적어도 내 컴퓨터에서) 인 --socket [/tmp/mysql.sock]
것처럼 보이기 때문에 약간 혼란 스럽 /usr/local/mariadb/data/mariadb.sock
습니다.
내가 편집 할 필요없이 기본 설정을 사용할 수 /usr/local/mariadb/data/mariadb.sock
있도록를 실제로 구성 할 수있는 위치가 궁금합니다 (하지만 지금은 너무 피곤해서 알아낼 수 없습니다 ...)/tmp/mysql.sock
.my.cnf
어떤 시점에서 나는 이것을 생각하기 전에 다른 답변에서 언급 한 것들을했습니다.