[MySQL기동오류]MySQL서버가 기동은 되있지만 포트를 찾지 못하는 오류 해결

2025. 5. 18. 14:57DB/MYSQL

728x90

상황 

 (전날)스프링부트 기동 정상 실행 & MySQLWorkbench도 정상 작동

 (당일) 아무것도 건들지 않고 스프링부트 기동시 오류 발생 & MySQLWorkbench에서도 서버상태 멈춰있는 상태로 실행안됨

아무설정도 건든게 없고 MySQLWorkbench 도 동작을 안하는 거 보니, MySQL 서버 상태가 의심됨

 

- 오류내용(일부) : Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.6.13.Final.jar:6.6.13.Final]

 

조치

1) mysql서버 기동여부 확인

→ 실행중 확인

→ mysql서버가 기동중인데 왜 부트도 안뜨고 MySQLWorkbench에서도 확인이 안된것일까?

$ ps aux | grep mysqld
b~      12345   0.0  0.0  123456    777 a001  S+    1:39PM   0:00.00 grep mysqld

 

2)

현재 MySQL이 어느 포트/소켓으로 열려 있는지 확인

 2가지 명령어로 상태확인시 아무 실행결과 없는 상태 

(상황) MySQL 프로세스가 실행 중이긴 하지만, TCP 포트에서 수신 대기 중이 아님
→ 즉, 소켓 파일로만 열려 있는 상태 (비정상적인 설정일 가능성 있음)

$ sudo lsof -iTCP -sTCP:LISTEN -n -P | grep mysql
$ -- 실행결과 없음
$ netstat -an | grep 3306
$ -- 실행결과 없음

 

해결 : MySQL을 완전히 중단 후, TCP 포트 3306에서 다시 실행되도록 재기동

1) MySQL을 완전히 중단

$ sudo pkill mysqld
$


2) 정확한 mysql.server 스크립트로 MySQL 시작

$ sudo /usr/local/~/mysql.server start
Starting MySQL
 SUCCESS!

 

 

 

3) 다시 포트 열렸는지 확인

$ sudo lsof -iTCP -sTCP:LISTEN -n -P | grep mysql
mysqld ~ (LISTEN)

 

 

4) MySQl 접속 → 나의 경우 해당 명령어 실행시 정상실행되진 않았지만, '3)'까지 실행 후 부트 재기동 & MySQLWorkbench 정상작동 확인

$ mysql -u root -p

 

 

추가 1: 4)번 해결방법

MySQL 클라이언트(mysql 명령어)가 현재 PATH에 등록되어 있지 않아서 터미널에서 인식되지 않음

👉 MySQL 서버는 설치되어 있지만, mysql 명령어가 터미널에서 어디에 있는지 몰라서 실행이 안 됨.

 

1)  MySQL 클라이언트 명령어 위치 확인 → 실행결과 중 그중에 bin/mysql 로 끝나는 경로를 찾기

$ sudo find /usr/local -name mysql

 

2) 찾은 경로를 터미널 PATH에 추가

$ echo 'export PATH="찾은경로/bin:$PATH"' >> ~/.zprofile
source ~/.zprofile

 

3) 등록 확인

$ which mysql

 

4) 서버접속 확인

$ mysql -u root -p

 

 

추가2 : 맥 재기동시 MySQL 완전 자동 시작 설정

방법1-수동설정:  launchctl로 MySQL 자동 시작 설정 

 

1) LaunchDaemon에 MySQL 등록

$ sudo cp /usr/local/mysql/support-files/com.mysql.mysql.plist /Library/LaunchDaemons/

 

2) 권한 설정

$ sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist

 

3) MySQL 자동실행 등록

$ sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

 

4) 맥 재부팅후  자동실행 여부 확인

$ ps aux | grep mysqld

 

방법2-'.sh'생성(최초1회만실행시 자동기동):  launchctl로 MySQL 자동 시작 설정 

1) 터미널에서 명령어 실행 -nano로 작성

$ nano setup-mysql-autostart.sh

 

2) 편집기에서 아래내용작성 

 → ^+O(저장)

→ ^+X(나가기)

#!/bin/bash
sudo cp /usr/local/mysql/support-files/com.mysql.mysql.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

echo "✅ MySQL이 부팅 시 자동으로 실행되도록 설정되었습니다."

 

3) 아래명령어 실행

$ chmod +x setup-mysql-autostart.sh
./setup-mysql-autostart.sh
728x90