MySQL 설치 후 접속 불가, 2002 / 28000 error

트곰·2022년 3월 20일
0

첫 날 프로젝트를 만들고, 실행하려는 작업까지 하려고 했다.
jdbc를 사용할까 하다가, 나에게 더 어려운 jpa를 선택하였고 디펜던시를 나중에 사용할 모든 것들을 추가해서 생성을 했다.
어제는 jsp관련 디펜던시가 있었지만, 현재 버전으로 복붙했다.

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'mysql:mysql-connector-java'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

그리고 그냥 run했는데 안됨ㅎㅎㅎㅎㅎㅎㅎㅎㅎ
아니 왜!!그냥 실행했는데 왜안되니ㅠㅠㅠㅠㅠ

'Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. '

이유는 디펜던시에 runtimeOnly 'mysql:mysql-connector-java'을 추가하고, 프로퍼티에 추가를 안해줘서!!

application.properties 파일에 jdbc url 및 계정 정보를 적으면 된다!

spring.datasource.url=jdbc:mysql://localhost:3306/[DB스키마명]?autoReconnect=true
spring.datasource.username=[DB접속Id]
spring.datasource.password=[DB접속Password]
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

이제 실행이 되었다! 그러면 db랑 연결이 되어야 하는데 이번에는 mysql이 말썽이다ㅠㅠㅠㅠㅠㅠ

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

이 에러도 참 많이 봤었는데, 2002는 낯익은데 뭐가 문제인지는 기억이 안났다ㅠㅠ
그리고 진짜 많은 블로그를 심지어 이틀에 걸쳐서 봤는데 해결이 안됬닿ㅎㅎㅎㅎㅎ
결론적으로! 저 에러는 소켓 권한이나 경로의 문제가 아닌! 내가 서버를 안켜서 발생한 문제였다😱😱😱😱😱😱😱😱
이거 해결하려다가 안되서 진짜 8번은 mysql을 다시 설치한 것 같다....
심지어 맥os 업데이트해서 brew도 말썽이어서 시간이 더 할애되었다.....ㅠㅠ
나만 그러는건지,,,나는 항상 문제가 발생하고 블로그를 찾아서 해결하려고 해도
상위에 있는 방법으로는 해결이 단번에 된 경우가 거어어어어어어의 없다.....😭😭😭

여튼 다시 문제점으로 돌아와서!
맥(mac)에서 홈브루(homebrew)로 mysql을 받은 경우라면,

brew services start mysql
//brew services [stop/restart] mysql

명령어로 서버를 시작하면, 2002 에러는 해결된다! 그러면 원만하게 진행될 줄 알았지???ㄴㄴㄴ
이제는 mysql에 접속이 안된다! 사실 처음에는 비밀번호를 까먹었고, 그 뒤로는 설치하고 직후인데도 접속이 안되었다ㅠㅠㅠㅠㅠㅠㅠ

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

사실 설치하고, 터미널에 나오는 내용을 자세히 읽는다면 다 나와있는 내용이다!
그리고 나도 골백번 한 행동이뮤ㅠㅠㅠㅠㅠㅠ

$mysql_secure_installation

설치하고, 접속하기 전에 해당 명령어를 입력하고 비밀번호 설정과 보안강도를 설정할 수 있다
이게 뭐라고!!!!!!!!!이틀동안 삽질을 한 것인가.......
비밀번호도 설정하고, application.properties에 입력할 db를 만들기 위해서 database를 생성했다.

//디비 생성
mysql> CREATE DATABASE {DB이름};

//유저 생성 및 접근범위 설정(localhost/ 전체)
mysql> CREATE USER '{username}'@'localhost' IDENTIFIED BY '{password}';
mysql> CREATE USER '{username}'@'%' IDENTIFIED BY '{password}';

//계정에 권한 부여
mysql> GRANT ALL PRIVILEGES ON {database}.* TO '{username}'@'localhost';
mysql> FLUSH PRIVILEGES;

모든 설정을 마치고 나니, 드디어 죽지 않고 실행되는 톰캣 서버를 확인했다🫠
다시는 까먹지말고! 혹시 까먹더라도 뻘짓하는 시간을 줄여보도록 글을 작성했다

https://fntg.tistory.com/193
https://eunhee-programming.tistory.com/262
https://devdhjo.github.io/mysql/2020/01/29/database-mysql-002.html

profile
개발자가 되기 위해서 공부중입니다 :ㅡ)

0개의 댓글