MySQL downgrade 8 to 5.7

Nam Eun-Ji·2022년 1월 12일
1

MySQL 버전을 8.0.18에서 5.7로 downgrade를 해야할 일이 생겼다.

데이터 백업

버전을 변경하는데 혹시 모를 데이터에 대해 백업해놓았다.
mysqldump -u [아이디] -p --all-databases > [저장할 파일명].sql

데이터 복원

mysql -u [아이디] -p < [저장한 파일명].sql


downgrade

delete mysql

brew uninstall mysql
이후 mysql --version을 입력하면 zsh: command not found: mysql라고 뜬다.


버전 2개가 동시에?!

이렇게만 하면 끝날 줄 알았는데, 나같은 경우엔 위 명령어와 혹시 모를 폴더까지 다 삭제했지만 5.7을 설치를 정상적으로 하고도 mysql 프롬프트에 들어가서 버전을 확인해보면 8.0.18 그대로였다.

우선적으로 내가 해본 것은

  • mysql 중지
    mysql.server stop or brew services stop mysql
  • mysql 관련 파일을 모두 삭제
    rm -rf /usr/local/var/mysql
    rm /usr/local/etc/my.cnf
  • mysql 삭제
    brew uninstall mysql
    brew uninstall mysql@5.7

아무리 찾아도 그 원인을 못 찾다가 어떤 블로그에서 mysql이 정상적으로 실행되고 있는지 확인하려면 포트를 확인해보라고 써있는 글에서 힌트를 얻어 포트를 확인해보니 삭제했는데도 불구하고 실행되고 있었다. 그럼 이건 제대로 삭제되지 않았다는 걸 뜻하는걸까?

  • mysql 실행 여부 확인 (mysql port : 3306)
    netstat -na | grep 3306
  • 그래서 mysql의 pid를 확인 후 강제 종료해주었다.
    • pid 확인 : sudo lsof -i :3306
    • mysql 종료 : sudo kill -9 156

위와 같이 해준 후 brew를 통해 다시 설치해주었더니 정상적으로 작동되었다.


install mysql@5.7

brew update
설치하기 전에 brew를 업데이트 해준다.

brew search mysql
brew에 mysql 버전이 어떤 것이 있는지 확인한다.

brew install mysql@5.7

brew를 통해 mysql을 설치하고 나니 아래와 같이 path를 추가하라고 뜬다.

If you need to have mysql@5.7 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

그래서 echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc 를 복사해 붙여넣고 실행한 후 버전 확인(mysql --version)을 해보았는데 zsh: command not found: mysql라고 떴다.

그래서 다시 source ~/.zshrc
위 처럼 source를 입력해서 변경된 zshrc 파일을 실행하고 난 뒤 다시 mysql 버전을 확인하면 정상적으로 버전을 확인할 수 있다.
(source 명령어 : 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 명령어)


위 방법 대신 아래로도 가능하다.

vi ~/.bash_profile

export PATH="/usr/local/opt/mysql@5.7/bin:$PATH
export LDFLAGS="-L/usr/local/opt/mysql@5.7/lib"
export CPPFLAGS="-I/usr/local/opt/mysql@5.7/include"

source ~/.bash_profile

profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글