MySQL 버전을 8.0.18
에서 5.7
로 downgrade를 해야할 일이 생겼다.
버전을 변경하는데 혹시 모를 데이터에 대해 백업해놓았다.
mysqldump -u [아이디] -p --all-databases > [저장할 파일명].sql
mysql -u [아이디] -p < [저장한 파일명].sql
brew uninstall mysql
이후 mysql --version
을 입력하면 zsh: command not found: mysql
라고 뜬다.
이렇게만 하면 끝날 줄 알았는데, 나같은 경우엔 위 명령어와 혹시 모를 폴더까지 다 삭제했지만 5.7을 설치를 정상적으로 하고도 mysql 프롬프트에 들어가서 버전을 확인해보면 8.0.18 그대로였다.
우선적으로 내가 해본 것은
mysql.server stop
or brew services stop mysql
rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf
brew uninstall mysql
brew uninstall mysql@5.7
아무리 찾아도 그 원인을 못 찾다가 어떤 블로그에서 mysql이 정상적으로 실행되고 있는지 확인하려면 포트를 확인해보라고 써있는 글에서 힌트를 얻어 포트를 확인해보니 삭제했는데도 불구하고 실행되고 있었다. 그럼 이건 제대로 삭제되지 않았다는 걸 뜻하는걸까?
netstat -na | grep 3306
sudo lsof -i :3306
sudo kill -9 156
위와 같이 해준 후 brew를 통해 다시 설치해주었더니 정상적으로 작동되었다.
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