(2024년 작성 내용 일부 수정 후 재발행)

 

Database Organization이라는 수업을 듣게 되어 MySQL을 처음 사용해보게 되었다.

여기를 참고해서 MySQL을 설치한 뒤, Workbench를 설치했는데

 

초기 설정을 하는데 

Edit Conection 들어가주고

Store in Keychain 눌러서 비번 설정해주고 Test Connection 누르니까 이런 경고문이 떴다.

 



내가 설치한 MySQL은 8.2.0 버전이었고,

Workbench는 24.1.16 기준으로 가장 최신 버전인 8.0.36 버전이었다.

 

해결 방법 - MySQL 삭제 후 다운그레이드 된 버전 (mysql@8.0) 설치

1. 현재 설치된 mysql 확인

$ brew list | grep mysql

 

2. 위에서 확인된 mysql 삭제 (mysql@5.7 과 같이 다른 버전 확인될 경우 함께 삭제)

$ brew services stop mysql # mysql 서버 실행 중인 경우 중지
$ brew uninstall mysql # mysql 삭제

 

3. mysql 설치 경로 확인

$ which mysql

mysql 설치 경로가 /usr/local/bin/mysql 인 경우 여기 참고

 

4. mysql 설치 경로에서 mysql 관련 파일 제거

$ sudo rm -rf /opt/homebrew/var/mysql # mysql 데이터 디렉토리 삭제 (모든 데이터 삭제되므로 주의)
$ sudo rm /opt/homebrew/etc/my.cnf # mysql 설정 파일 삭제
$ sudo rm -rf /usr/local/var/mysql # 기타 파일 삭제

 

5. mysql@8.0 버전으로 재설치

$ brew install mysql@8.0

 

6. mysql@8.0 버전 link후 환경변수 등록

$ brew link --force --overwrite mysql@8.0
$ echo 'export PATH="/opt/homebrew/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc

 

에러지옥 mysql;;;

오랜만에 mysql을 사용하려고 했는데 어김없이....그래 에러 없으면 서운할뻔 ^^

 

개발환경
MacBook Air M1, 2020
macOS Sequoia 15.3.1
Homebrew 4.4.25

 

 

첫 번째 난관

. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/dhcp198.merusouth113.iit.edu.pid).

터미널에 아래 명령어를 입력해서 mysql을 실행했는데 먼저 위와 같은 에러가 발생했다.

$ brew services start mysql

 

지난 번에도 겪었던 에러라 그냥 삭제 후 재설치했다..

재설치 후 위 명령어까지는 잘 실행 되었지만, 또 다른 문제가 발생했다.

 

두 번째 난관

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 

해당 에러를 검색하면 아주 친절하게 해결 방법이 안내되어있는 게시글을 참고해서 해결해보려했으나,

나처럼 실패하신 분들이 있다면.. 이 방법을 바칩니다. 

 

⚠️ 에러 상황에 따라 해결이 안 될 수도 있습니다.



해결 방법

1. Homebrew를 통해 설치된 서비스들의 실행 상태를 확인하는 명령어를 입력한다.

$ brew services list

 

2. 실행 중인 서비스 모두 종료

$ brew services stop mysql
$ brew services stop mosquitto

 

3. mysql 재실행

$ brew services start mysql
$ mysql -u root -p

 

 

에러 발생 원인

Mosquitto와 MySQL이 충돌했을 걸로 예상된다. 원인은 다음 두 가지로 예상해볼 수 있을 것 같다.

1. Mosquitto가 MySQL의 기본 포트인 3306을 점유했을 가능성
2. Mosquitto 먼저 실행 후 MySQL을 실행을 시도해 정상적으로 실행 되지 않았을 가능성

 

 

앞으로는 $ brew service list 명령어를 통해 실행 중인 서비스 및 포트 점유 여부 또한 잘 살펴봐야할 것 같다.

 

reference: https://velog.io/@hyebinnn/MySQL-%EC%97%90%EB%9F%AC-ERROR-2002-HY000-Cant-connect-to-local-MySQL-server-through-socket-tmpmysql.sock

일단 나는 Mac m1 사용자고 homebrew로 mysql을 설치했다.

 

문제상황

MySQL 실행중, 외부에서 csv 파일을 가져와 테이블에 insert하려고 할 때 아래 코드를 실행 시켰더니 에러가 발생했다.

load data infile '/Users/home/Team.csv'
into table Team
fields terminated by ';'
enclosed by ''
lines terminated by 'n'
ignore 1 rows;

 

에러문: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 

 

 

원인

M1 터미널에 MySQL을 설치한 뒤 아래 명령어를 사용해서 서버 관련 설정을 해주게 되는데,

$ mysql.server start

 

이때 --secure-file-priv 옵션을 설정해줘서 그렇다고 한다. 위 명령어를 터미널에 입력해 서버를 다시 시작하고, 옵션 설정을 다시 해주면 된다.

 

해결을 시도했으나 실패

서버 설정을 다시 해주려고 위의 명령어를 입력했지만 갑자기 아래와 같은 에러가 떴다. 

 

여기를 참고해서  다음 명령어를 시도했다.

// MySQL에 대한 소유 변경
$ sudo chown -R _mysql:_mysql /opt/homebrew/var/mysql
// MySQL 설치 위치 확인
$ brew --prefix mysql
// MySQL 및 폴더 권한 변경
$ sudo chmod -R 750 /opt/homebrew/opt/mysql
$ sudo chmod -R 750 /opt/homebrew/opt/

 

그러나......

 

해결 안돼서 그냥 여기를 참고해서 mysql을 삭제하고 재설치했다.

 

---

아무튼 다시 본론으로 돌아와서

 

해결 시도 1) infile 앞에 local을 붙여라

load data infile '/Users/yujimin/C:C++/Team.csv'
into table Team
fields terminated by ','
enclosed by ''
lines terminated by 'n'
ignore 1 rows;

 

응안돼~

 

해결 시도 2) my.cnf 파일에 "" 추가

아래 명령어로 my.cnf의 위치를 찾는다.

 

 

/opt/homebrew/etc/my.cnf

 

$ brew sercives restart mysql

 

 

 

???아또왜

 

에러 메시지

. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/dhcp198.merusouth113.iit.edu.pid).

 

해결방법

$ sudo rm -rf /opt/homebrew/var/mysql/

$ brew reinstall mysql

$ mysql.server start

$ mysql_secure_installation 

Would you like to setup VALIDATE PASSWORD component? -> n

Remove anonymous users? -> y

Disallow root login remotely? -> n

Remove test database and access to it? -> n

Reload privilege tables now? -> n

 

All done!

 

mysql 실행

$ mysql -u root -p

비번입력하면

mysql> 창 뜨면서 시작~

 

 

ref: https://cocoze.tistory.com/93

1. homebrew 설치

$ brew -v	// homebrew 설치 여부 확인

Homebrew 4.2.10과 같이 설치 버전이 뜨면 설치되어있는 것이다.

설치가 안 되어있다면 설치해주자.

 

2. 아래 명령어를 순서대로 입력해서 mysql을 설치 및 시작한다.

$ brew install mysql

$ mysql.server start

$ mysel_secure_installation

 

3. 기본 설정 창이 뜬다. 상황에 맞게 y or n를 입력해준다. 나는 여기를 참고해서 똑같이 해줬다.

 

4. mysql 실행하기

$ mysql -u root -p

 

 

 

ref: https://velog.io/@haleyjun/MySQL-Mac%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-M1%EC%B9%A9

데이터베이스 초보자는 설치 과정에서부터 난관에 봉착한다.

 

지금까지는 MySQL로 수업 내용을 커버해왔는데,

OLAP을 배우면서 CUBE라는 다차원 배열 데이터베이스에 대해 배우면서, MySQL에서는 지원하지 않는다는 것을 알게 되었다.

그래서 PostgreSQL을 설치한 뒤 'Initialize'를 눌렀더니

 

이런 경고문이 떴다.

 

해결 방법

먼저 터미널에 아래와 같이 입력한다. 5432 포트를 사용/수신대기 중인 프로세스에 대한 정보를 확인하는 명령어이다.

$ sudo lsof -i :5432

원인: postgress로 식별되는 다른 프로세스가 이미 5432 포트를 사용중이어서 위와 같은 에러가 발생했다.

 

해결: 터미널에 아래 명령어를 입력해 PostgreSQL 프로세스를 죽인다.

$ sudo pkill -u postgres

 

 

해결 ~

 

reference: https://dev.to/balt1794/postgresql-port-5432-already-in-use-1pcf

+ Recent posts