최신 게시글(DB)
2023.01.30 / 14:06

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

우리소
추천 수 160

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


[상황] mysql -u root를 통해 mysql에 접속하려고 했는데 에러 발생

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

[시도 1] 비밀번호를 입력해보자

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

==> 똑같은 에러 발생
검색해보니 using password가 NO일땐 비밀번호를 입력 안한거고,
YES일땐 비밀번호가 틀린거라고 한다.

비밀번호가 틀린걸보니 까먹은게 분명하다. 재설정 해주자


[시도 2] 비밀번호 재설정

mysqld --skip-grant // 인증 없이 mysql 진입
[ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
2021-04-10T17:01:46.616351Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2021-04-10T17:01:46.617010Z 0 [ERROR] [MY-010119] [Server] Aborting

3306 포트를 이미 쓰고 있어서 aborting 됐다.


[시도 3] 3306 포트 kill 하고, 재설정 시도

sudo lsof -i:3306 //실행중인 포트 찾기
COMMAND PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  154 _mysql   31u  IPv6 0x18c1898642d5348d      0t0  TCP *:mysql (LISTEN)

다른 프로젝트에서 쓰고있는 mysql이 실행이 되고 있었다.

$ sudo kill -9 154 //kill 하고싶은 프로세스의 PID 넣어주기

프로세스 kill을 해줬는데 3306 포트가 계속 실행이 되고 있다.
알고보니 mysql stop을 하지 않은 상태여서 그랬다. 😓(멍청이)

검색을 해보니 service mysql stop으로 mysql을 종료할 수 있다고 한다.

$ service mysql stop       
zsh: command not found: service

음음 쉽게 될리가 없지


[시도 4] services 설치 후 mysql stop 하기
service 명령어는 리눅스 기반에만 있는 명령어라고 한다.
따라서 맥은 아래와 같이 해주면 된다.

$ brew services mysql start 	//mysql 시작하기
$ brew services mysql stop 	//mysql 나가기
$ brew services mysql stop

으로 stop을 해주었다.


[시도 5] 인증 없이 mysql 진입 시도

$ mysqld_safe --skip-grant-tables
$ mysqld -u root -p
$ 비밀번호 : (엔터)
[ERROR] [MY-011084] [Server] Keyring migration failed.

하.. 𝙒𝙝𝙮𝙧𝙖𝙣𝙤,,,