티스토리 뷰
express.js에서 mariadb를 연결했는데 아래와 같이 오류가 발생했다.
비밀번호도 맞고 HOST 설정도 잘 되어 있어서 다른 문제라고 생각해서 찾아 보았다.
2025-01-09 23:59:46 33 [Warning] Access denied for user 'root'@'localhost'
SELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'root';
를 했는데
SELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'root';
+------+-----------+-------------------------------------------+-----------------------+
| User | Host | authentication_string | plugin |
+------+-----------+-------------------------------------------+-----------------------+
| root | localhost | invalid | mysql_native_password |
| root | 127.0.0.1 | hash값 | mysql_native_password |
+------+-----------+-------------------------------------------+-----------------------+
위에서 invalid 값이 문제였다.
그래서 아래와 같이 해결했다.
authentication_string에 invalid로 표시된 것은 MariaDB에서 root 사용자의 비밀번호가 유효하지 않거나 제대로 설정되지 않았음을 나타냅니다. 이로 인해 "Access denied" 오류가 발생하는 것입니다. 이를 해결하려면 authentication_string을 다시 설정해야 합니다.
해결 방법: 비밀번호 재설정
- MariaDB에 관리자 계정으로 로그인 아래 명령어로 MariaDB에 로그인합니다:비밀번호를 입력하거나, sudo를 사용해 직접 로그인할 수 있습니다:
-
bashsudo mysql
-
bashmysql -u root -p
- 비밀번호 재설정 아래 명령어를 사용하여 root 사용자의 비밀번호를 다시 설정합니다:여기서 new_password를 원하는 비밀번호로 변경하세요.
-
sqlALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;
- 비밀번호 인증 확인 다시 한 번 mysql.user 테이블을 확인하여 authentication_string이 비밀번호로 제대로 설정되었는지 확인합니다:결과가 다음과 같이 나와야 합니다:
-
sql코드 복사+------+-----------+-------------------------------------------+-----------------------+
| User | Host | authentication_string | plugin |
+------+-----------+-------------------------------------------+-----------------------+
| root | localhost | (비밀번호 hash) | mysql_native_password |
| root | 127.0.0.1 | (비밀번호 hash) | mysql_native_password |
+------+-----------+-------------------------------------------+-----------------------+ -
sqlSELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'root';
- MariaDB 재시작 비밀번호 설정 후 MariaDB를 재시작합니다:
-
bashsudo systemctl restart mariadb
- Express.js 연결 테스트 Express.js에서 설정한 비밀번호와 root 계정 비밀번호가 일치하는지 확인하고, 다시 연결을 시도합니다.
참고: 비밀번호 없이 인증을 원한다면
root 계정의 비밀번호를 사용하지 않으려면 플러그인을 auth_socket으로 변경할 수도 있습니다:
이 경우 Express.js에서는 root 계정을 사용할 수 없고, 다른 사용자를 생성해야 합니다.
'IT 이야기 > Node.js' 카테고리의 다른 글
[express.js] 카페24API로 고객ID 가져오기 (0) | 2025.01.21 |
---|---|
[express.js] 카페24 쇼핑몰의 적립급을 조회/지급/차감 - 1편 (0) | 2025.01.21 |
Express.js와 EJS를 사용하여 다국어 지원 관리자 페이지를 작성하려면 (0) | 2025.01.14 |
express.js 로그인 시스템 구현 시 보안 (0) | 2025.01.05 |
[SERVER] ubuntu, nginx, node.js mariaDB로 서버 세팅하기 (1) | 2024.09.26 |
[express.js] express.js와 mariaDB를 이용하는 기본 설정 (0) | 2024.09.24 |
Hostinger 사용기1 - 설치 (0) | 2024.06.13 |
- Total
- Today
- Yesterday
- W3Schools Online Web Tutorials
- 구차니의 잡동사니 모음
- [IT]블로거팁닷컴
- 비앤아이님의 블로그
- Blog Suspect
- 즐거운하루 blog
- zinicap의 검색엔진 마케팅(SEM)
- 머니야머니야님의 블로그
- [Friend] AtinStory
- [기타배우기]해브원 박스
- [웹표준] SINDB.com
- 해커 C 이야기
- [애드센스] 길라잡이
- 정순봉의 IT SCHOOL
- 씨디맨의 컴퓨터이야기
- 2proo Life Story
- 못된준코의 세상리뷰
- [IT강좌] 정보문화사
- IN 대전
- 에우르트는 나쁜남자 -_-
- 씬의 싱크탱크
- 엔돌슨의 IT이야기
- 진이늘이
- 'Cooltime'의 블로그
- 후이의 Tistory
- Soulstorage
- 앤드&엔드의 블로그
- June Blog
- 노지의 소박한 이야기
- gbWorld
- 인터넷 속 나의 생각
- HarshNix
- ART of WEB
- 녹두장군 - 상상을 현실로
- 소스코드
- 소스
- C언어 문제
- 안드로이드 어플 추천
- C언어 소스
- 효과음
- MBTI 강좌
- 리뷰
- MBTI 자료
- 인터넷 익스플로러
- 강좌
- 프로그래밍 문제
- MBTI 테스트
- 인터넷
- MBTI 검사
- MBTI
- JavaScript
- 스마트폰
- C언어
- 성공
- 프로그래밍
- 예제 소스
- C
- HTML
- 모토로이
- 안드로이드
- It
- 강의
- 안드로이드 어플
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |