아.. 오늘 하루 통으로 날린 mariadb 트러블슈팅
결국은 해결했다. 진짜 개고생했기때문에 또 당하면 몹시 억울할 것 같아서 바로 기록.
1. 문제 상황
homebrew로 mariaDB 설치 후 실행하면 Access Denied.
비밀번호를 자꾸 입력하랜다.
원래 처음 설치하고 나면 보통 처음에는 비밀번호가 설정이 안되어있기 마련인데, 자꾸 설정하랜다.
secure installation 명령어로 초기 root 세팅을 해도 거기서도 Access Denied가 나옴. ㅎㅎ
이어서 구글링, gpt의 도움으로 mariadb 안전모드 실행을 알게되어서, 비밀번호 필요없이 mariadb 를 강제로 열수있는 명령어로 mariadb를 열고 root의 비밀번호를 설정해준 후 local에서 mariadb 접속을 가능하게 하는데까지는 성공했다.
하지만 intelliJ 의 데이터소스 커넥팅에 실패했고, Access Denied 가 IntelliJ상에서 계속 나오는 문제를 발견.
.. 거짓말같겠지만 kafka 과제때문에 mariadb 세팅하는 문제였는데 이 문제로 밥먹는 시간빼고 9시간 이상을 날렸다.
2. 원인
mariaDB와 mysql은 사실상 같은 DB로 알고있었고,
2023년에 mysql을 설치해서 맥에서 개발을 했던 기억이 있기 때문에
homebrew로 mariaDB를 설치해도 초기비밀번호가 남아있거나, 재설치를 해도 초기화가 안되고 설정 충돌이 나는 듯 했다.
2023년에 mysql을 설치했던건 brew 로 설치한게 아니었기 때문.
혹시나 해서 /usr/local 에 직접 접근하여 내용물들을 까봤다.
✘ hyun@hyeonmin-yeong-ui-MacBookPro ~ ls -la /usr/local
total 0
drwxr-xr-x 18 root wheel 576 3 5 16:37 .
drwxr-xr-x@ 11 root wheel 352 11 3 2023 ..
drwxrwxr-x 5 hyun admin 160 3 14 16:54 Caskroom
drwxrwxr-x 43 hyun admin 1376 3 14 18:17 Cellar
drwxrwxr-x 3 hyun admin 96 11 15 2023 Frameworks
drwxr-xr-x 23 hyun admin 736 3 14 14:54 Homebrew
drwxr-xr-x 9 root wheel 288 3 5 16:37 apache-maven-3.8.8
drwxrwxr-x 200 hyun admin 6400 3 14 18:17 bin
drwxrwxr-x 20 hyun admin 640 3 14 18:17 etc
drwxrwxr-x 66 hyun admin 2112 3 14 18:17 include
drwxrwxr-x 282 hyun admin 9024 3 14 18:17 lib
drwxr-xr-x 7 root wheel 224 5 18 2022 lmm
lrwxr-xr-x 1 root wheel 26 12 22 2023 mysql -> mysql-8.2.0-macos13-x86_64
drwxr-xr-x 13 root wheel 416 12 22 2023 mysql-8.2.0-macos13-x86_64
drwxrwxr-x 55 hyun admin 1760 3 14 18:17 opt
drwxrwxr-x 3 hyun admin 96 11 15 2023 sbin
drwxrwxr-x 26 hyun admin 832 3 14 18:17 share
drwxr-xr-x 25 hyun admin 800 3 14 23:31 var
아? 2023년에 mysql 설치해서 관련파일들이 남아있는것을 확인했다. 찾았다 이놈.
3. 해결
1) mySQL 서비스 종료
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 2>/dev/null
sudo launchctl remove com.oracle.oss.mysql.mysqld 2>/dev/null
2) MySQL 8.2.0 관련 파일 완전 삭제
sudo rm -rf /usr/local/mysql*
sudo rm -rf /usr/local/mysql-8.2.0-macos13-x86_64
sudo rm -rf /usr/local/etc/my.cnf*
sudo rm -rf /usr/local/var/mysql*
sudo rm -rf /usr/local/var/log/mysql*
sudo rm -rf /usr/local/var/run/mysqld*
sudo rm -rf /usr/local/bin/mysql*
sudo rm -rf /usr/local/lib/libmysql*
sudo rm -rf /usr/local/lib/libmariadb*
3) 삭제 확인
ls -la /usr/local | grep -i 'mysql'
출력 없으면 관련 파일 전부 정상적으로 삭제된 것
4) brew 캐시 정리
brew cleanup
brew doctor
5) 깨끗한 상태에서 mariaDB 재설치 후 실행
brew install mariadb
brew services start mariadb
그러면?
아, AccessDenied 안뜨고 바로 켜진다 드디어.
뇌의 주름이 펴지는 이 느낌.
간단한 설정 문제인거같은데도 뭐가 꼬여있어서 긴 시간 삽질해서 정말 답답했다.
---
추가로, mysql 이라고 입력하면 접속이 되는데, mysql -u root 라고 root로 접속하면 accessDenied가 나온다.
이는 이제
sudo mysql -u root
로 관리자 권한으로 접속한 후에
비밀번호를 세팅해주면 된다.
아래 사진 참고.
---
IntelliJ 연동도 잘된다.
원래는 MariaDB 버전도 안잡히고 AccessDenied 문제에, RSA Public Key 문제에.. 난리였는데
아무래도 이전 mySQL 버전과 충돌해서 생긴 문제가 맞았던 것 같다. 하..