-
MySQL 버전 변경 시 발생했던 문제점 및 해결방법사이드 프로젝트(yamukja)/데이터베이스 2023. 10. 11. 20:18
문제 상황 요약
1. homebrew(패키지 관리자)를 통해 터미널에서 brew install mysql 명령어를 통해 해당 시점에서 가장 최신 버전인 8.1 버전이 다운로드 되었다.
2. 오라클 사이트를 통해 mysqlworkbench를 다운받고 mysql 서버를 연결하려고 하니까 버전 호환성 문제가 발생하여 호환이 되는 버전 중에 가장 최신 버전인 8.0 버전으로 다시 다운받고(brew install mysql@8.0) 기존의 mysql은 brew uninstall mysql 명령어를 통해 삭제하였다.
3. 그러자 기존에 잘되던 mysql 관련된 명령어들이 작동하지 않았다. (zsh: command not found: mysql)
해결 시도1(실패)
1. /etc/paths 해당 파일에 mysql의 bin 디렉토리 경로(/opt/homebrew/Cellar/mysql@8.0/8.0.34/bin)를 추가하여 환경변수를 추가하였다.
2. 그러자 명령어 인식은 되었지만 mysql_secure_installation 해당 명령어 입력 시에 pid 관련된 파일을 수정할 수 없다는 에러가 발생
3. 구글링을 통해 해당 파일의 디렉토리의 소유자를 mysql로 변경하였지만 문제가 해결되지 않았다.
해결 시도2(성공)
1. 처음 다운로드 했을 때 따로 환경변수를 추가하지 않아도 잘 동작하였기 때문에 두 버전의 파일이 완전히 삭제되지 않아서 나는 충돌이지 않을까 추측
2. 시도1에서 /etc/paths 파일의 환경변수 삭제
3. 구글링을 통해 mysql 관련 디렉토리 및 파일 경로들 파악
/opt/homebrew/var/mysql
/opt/homebrew/etc/my.cnf - mysql 서버 설정파일로 보통 etc 디렉토리는 설정파일들이 들어있다.
/opt/homebrew/Cellar/mysql@8.0 - Cellar 디렉토리는 일반 패키지 파일들이 저장되는 곳이다.
/opt/homebrew/var/homebrew/locks/mysql@8.0.formula.lock
/tmp 경로에 있는 mysqlx.sock, mysqlx.sock.lock, mysql.sock, mysql.sock.lock
4. brew uninstall mysql로 패키지 삭제 후 3번의 경로에 있는 삭제되지 않은 파일 및 디렉토리 모두 삭제
5. 해결완료!
이후에 다시 zsh: command not found: mysql 에러로 명령어를 인식못하는 상황이 다시 발생!!!
그냥 환경변수를 추가하는 방법으로 해결하였음.
1. nano ~/.zshrc 명령어를 통해 설정파일을 텍스트 편집기로 열기
2. export PATH=/opt/homebrew/Cellar/mysql@8.0/8.0.34/bin:$PATH 를 작성하여 환경변수 추가
3. source ~/.zshrc 명령어를 통해 적용
참고사항
예전 os 버전에서는 기본적으로 패키지 경로가 /usr/local 이였지만 최신 버전에서는 보안상의 이유로 패키지 기본경로가 /opt/homebrew로 변경되었다.
'사이드 프로젝트(yamukja) > 데이터베이스' 카테고리의 다른 글
MySQL에 사용자 추가 및 권한부여 (0) 2023.10.13 맥북에 mysql 설치 및 간단한 CLI 명령어 (0) 2023.10.10