일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조힙
- 카카오1차
- 백준 1924번
- 프렌즈4블록java
- 문자열포맷
- 프로그래머스
- java method
- java
- 알고리즘
- 백준 1000번
- 공부정리
- heap
- 코딩테스트기출
- 자바문자열
- 자료구조 트리
- Java heap
- 객체프로그래밍이란
- 힙정렬자바
- 자바
- 개발상식
- 코테준비
- 카카오코딩테스트
- 백준 1924번 java
- 카카오코테
- 카카오기출
- 백준
- 프렌즈4블록
- 백준 1000번 java
- heap정렬
- 객체프로그래밍
- Today
- Total
일단 시작해보는 블로그
[Mysql] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러 본문
[Mysql] ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 에러
Selina Park 2019. 10. 16. 01:00잘 되던 mysql에 접속했는데 갑자기 다음과 같은 오류가 생겨서 실행이 안됐다....
parkjinsun:~ jinsun$ mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
왜 생겼을까 이런 오류..
mysql.sock?
unix/linux 의 디렉토리 구조상 임시 저장 directory인 /tmp에서 mysqld가 start 상태일 때 생성되었다가 stop상태일 때는 지워지는, mysqld(mysql의 서버 프로그램) 과 mysql(mysql 클라이언트 프로그램)이 같은 컴퓨터에서 통신할 때 파일을 사용하여 통신하는데 이때 사용되는 파일이다. (mysql.sock, 이런 파일을Unix Domain Socket이라고 한다.)
mysql 서버 프로그램(데몬, mysqld)과 클라이언트 프로그램(mysql, 또는 php의 접속 루틴)은 서로 다른 프로세스이다.
당연히 mysql이라는 완성된 프로그램이 실행될 때 mysqld와 mysql 사이에서 통신이 이뤄져야한다.
mysql은 TCP/IP 소켓(주로 mysqld와 mysql이 다른 컴퓨터에 있을 때 사용하는 통신 방법, 이때 포트는 보통 3306)과 Unix Domain Socket(같은 컴퓨터에 있을 때는 보통 TCP/IP보다 이것을 사용한다) 둘 다 사용할 수 있다.
TCP/IP 소켓이 IP주소와 포트를 이용해서 통신을 하듯 Unix Domain Socket는 파일을 이용한다. 이때 mysql.sock은 이런 용도로 사용되는 파일이다.
따라서 mysqld를 실행시켰을 때는 mysql.sock파일이 있지만, 중지시키면 이 파일은 사라지게 되는 것.
나의 해결책
이것저것 다 해봤지만 .... brew를 통해서 설치했기 때문에 몇번을 지웠다가 다시 설치해봤지만.........! 해결이 안되더니.. mysql 설정파일을 깔끔히 지워주니 해결이 됐다!..제발 앞으로는 잘됐으면 좋겠는데 하하..
1. mysql이 실행되고 있다면 stop 시켜야한다.
parkjinsun:bin jinsun$ brew services stop mysql
Stopping `mysql`... (might take a while)
==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql)
2. 완벽히 삭제한다.
parkjinsun:bin jinsun$ brew uninstall mysql
Uninstalling /usr/local/Cellar/mysql/8.0.18... (293 files, 280.9MB)
parkjinsun:bin jinsun$ rm -rf /usr/local/var/mysql
parkjinsun:bin jinsun$ rm /usr/local/etc/my.cnf
3. brew를 통해서 재설치한다.
parkjinsun:bin jinsun$ brew install mysql
4. mysqld를 start한다.
parkjinsun:bin jinsun$ mysql.server start
Starting MySQL
. SUCCESS!
5. mysql 클라이언트를 실행시킨다.
(드디어 예쁜 mysql> 이 나와줘서 나는....너무 기뻤다..............고마워....하........)
parkjinsun:bin jinsun$ mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.18 Homebrew
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
[출처]
'개발 > Mysql' 카테고리의 다른 글
[MongoDB] Data Modelling (0) | 2019.08.26 |
---|---|
[MongoDB] About MongoDB, 몽고DB (0) | 2019.08.26 |