맨날 말썽피우는 mysql에 관련하여 오늘도 또 오류가 생겼길래 열심히 글을 적어보려고 한다...
처음엔 매우 순조롭게 진행되었다..
intellj를 사용 중이어서 datagrip은 이미 깔려있는 상태였고, 그간 프로젝트는 mysql workbench와 이어서 진행했지만 umc에선 datagrip 연결을 권장하기에.. 메뉴얼대로 열심히 따라갔다.
하지만 위 사진처럼 data sources and drivers 항목에서 기존 mysql과 연동하는 과정에서 오류가 났다.
얼마전에 mysql workbench 사용할 일이 있어서 root 비밀번호는 외워두고 있었는데.. 정확하게 기억하고 있는데...🥹🥹🥹
확인해보니 내가 쓰는 mysql 9.2 버전의 인증방식이 caching_sha2_password 이라는 plugin을 사용하고 있어서 datagrip과 연결되지 않는다고 하더라..
암튼 여러 명령어를 사용하여 다른 방식으로 바꿨는데 아예 터미널(리눅스)에서 로그인이 안되는 것임!!
로그인(인증)방식 자체를 바꿨다보니 기존 패스워드로 로그인이 안되는 문제인 것 같았다. sudo로 아무리 해도 변경이 안되길래 눈물을 머금고 다시 mysql을 설치하기로 했다..
무조건 mysql 9.2를 전부 지우고 재설치를 해야 한다
그리고 무조건 재설치할거면 mysql@8.4로 재설치하세요!!!
2-1 : 현재 실행되고 있는 mysql9.2 다 끄기
현재 실행되고 있는 mysql을 다 끄고 재설치를 해야하는데 명령어를 입력해도 안꺼지는 프로세스들이 있어서 그럴 경우 PID 숫자를 입력하고 일일히 꺼줘야 한다
그리고 계속 재설치해도 error 19968 오류가 떴다.. 로그 확인해보니 소켓 불일치, 쉽게 말해 기존 sql과 새로 깔았던 sql 충돌로 sql자체가 실행됐다가 바로 꺼지는 문제였다.
mysql/MySQL-완전-삭제하고-재설치하기-(MacOS).md
위의 링크를 참고해서 우선 삭제해보는 것을 추천하고, 내가 입력했던 명령어도 참고를 위해 적어보려고 한다.
☑️ homebrew로 mysql 완전 삭제(force)
brew uninstall --force mysql mysql
brew cleanup
☑️ 기존 mysql 프로세스 끄는 명령어
sudo pkill -9 mysqld_safe
sudo pkill -9 mysqld
sudo pkill -9 mysql
☑️ 기존 mysql 프로세스가 전부 꺼졌는지 확인하는 명령어
ps aux | grep mysql
☑️ 만약 꺼지지 않은 프로세스가 있다면 pid 확인하여 강제로 종료하기
// 위 사진처럼 PID 번호가 54449일 경우
sudo kill -9 54449
☑️ ps aux | grep mysql을 실행했을 때, grep 명령어 외에는 아무것도 출력되지 않을 경우
=> MySQL에 관련된 잔여 파일들을 삭제하는 명령어 입력
sudo rm -rf /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/Cellar/mysql*
sudo rm -rf /usr/local/opt/mysql*
sudo rm -rf ~/Library/Application\ Support/MySQL
sudo rm -rf /usr/local/var/mysql/*
☑️ MySQL이 완전히 제거되었는지 확인하는 명령어
brew list | grep mysql
ls -l /usr/local/bin | grep mysql
ls -l /usr/local/var | grep mysql
ps aux | grep mysql
☑️ 루트 비밀번호 없이 MySQL 서버를 초기화
sudo /usr/local/opt/mysql@8.4/bin/mysqld --initialize-insecure --user=본인pc이름 --basedir=/usr/local/opt/mysql@8.4 --datadir=/usr/local/var/mysql
☑️ MySQL 서비스 재설치 또는 시작
brew install mysql@8.4
brew services start mysql@8.4
☑️ MySQL 보안 설정(루트 비번 설정)
mysql_secure_installation
번외 : witch sql 했을때 경로 못 잡는 경우
=> 환경변수를 따로 설정해주어야한다
echo 'export PATH="/usr/local/opt/mysql@8.4/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
✅ 이후 다시 mysql 명령어 실행 => 정상적으로 실행되면 해결 완료이다
which mysql
mysql --version
결국 연동에 성공했다!!
이 문제로 약 3시간 동안 삽질을 했기 때문에 블로그에 기록으로 남겨보았다.. 하하..
삽질하는 사람이 줄어들기 바라면서..