이미 맥에 MySQL 5.7이 설치된 상황에서 MySQL 8.0을 추가로 설치하게 되어 그 과정을 정리함
참고: https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html
MySQL 8.0 설치 및 실행
다운로드
https://dev.mysql.com/downloads/mysql/ 에서 dmg 파일을 다운로드한다.
맥북 M2에 설치하므로 ARM 용을 받았다.
Download 버튼을 클릭하면 로그인하라는 화면이 나오는데, 그냥 No thanaks, ... 를 클릭하면 된다.
MySQL 최신 버전 이슈
현재 MySQL 최신 버전인 8.2.0 Innovation을 설치하면 MySQLWorkbench에서 Visual Explain이 작동하지 않는 이슈가 있었다.
8.0 버전을 다시 받아서 설치했더니 Visual Explain이 정상적으로 동작했다.
8.0 버전을 받으려면 다운로드 페이지에서 8.0.35 버전을 선택하면 된다.
MySQLWorkbench의 Visual Explain을 사용하지 않는다면 8.2.0을 설치해도 문제 없을 듯하다.
설치
dmg를 더블클릭하면 pkg 파일이 나타나고, pkg를 더블클릭하면 설치가 시작된다.
계속 버튼을 계속 누르면 root 비번 설정을 포함해서 쉽게 설치가 끝난다.
중간에 설치 위치를 변경하는 버튼이 나오지만, 작동하지는 않는다. (설치 위치를 바꿀 수 없다.)
실행
설치를 마치고 나면 자동으로 MySQL이 실행된다.
설치 과정에서 자동 시작 옵션을 껐다면, 시스템 설정 > MySQL에서 Start MySQL Server 버튼으로 시작할 수 있다.
DB 이름 왼쪽의 동그라미가 초록색이 아닌 빨간색이라면 서버가 제대로 시작되지 않은 것이다.
만약 서버가 시작되지 않는다면, 터미널에서 mysqld --validate-config
로 확인해 볼 수 있다.
다음은 sql_mode 설정 오류로 인해 서버가 종료된 경우의 로그이다.
Configuration 재설정
기존 5.7 버전에서 사용하던 configuration이 8.0과 호환되지 않는데, 8.0 실행 시 기존 configuration이 적용되어 오류가 발생하였다.
시스템 설정 > MySQL > Configuration 탭에서 Configuration File 항목에 빈 my.cnf 파일을 설정하고 Apply 버튼을 누르면 기존 configuration이 적용되지 않는다. 이후에 재실행하니 오류 없이 서버가 실행되었다.
DB 접속 테스트
MySQLWorkbench에서 127.0.0.1:3306으로 connection을 추가했다.
접속 테스트를 해보면 아래와 같이 성공적으로 접속된다고 나온다.
DB 스키마 생성
DB에 접속하면 sys 스키마만 존재하는 상태이므로 dbo 스키마를 생성하였다.
CREATE SCHEMA `dbo`;
샘플 DB 적재
테스트를 위해 샘플 DB를 적재해보았다.
(자세한 과정은 2023.12.09 - [DB] - MySQL 샘플 DB 적재에 정리)
기존 MySQL 5.7 활성화
시스템 설정 > MySQL에서 MySQL 5.7을 선택한 후에 Make Active 버튼을 누르면, 8.0 인스턴스가 비활성화되고 5.7이 활성화된다.
활성화한 상태에서 Start MySQL Server 버튼을 누르면 서버가 시작된다.
mysql이 설치된 /usr/local 폴더를 확인해보면, mysql 폴더는 실제 설치 폴더인 mysql-5.7..., mysql-8.2...의 symlink이다.
5.7을 활성화시키면 mysql 폴더의 대상이 mysql-5.7...로 변경된다.
5.7과 8.0을 동시에 실행하고 싶다면?
개인적으로는 5.7과 8.0을 동시에 사용할 필요는 없었지만, 동시 실행이 가능한지 궁금해서 찾아보았다.
공식 매뉴얼에서는 datadir과 port 옵션을 변경하여 사용하는 방식이 나오는데, 인스톨러 설치 UI나 시스템 설정에는 옵션을 변경하는 부분이 보이지 않았다.
이 방법 대신 DBngin을 사용하면 손쉽게 여러 DB 인스턴스를 실행할 수 있다고 한다. MySQL 뿐 아니라 PostgreSQL, Redis 등의 DB도 지원한다.
'DB' 카테고리의 다른 글
MySQL 쿼리 최적화 팁 몇 가지 (0) | 2023.12.12 |
---|---|
MySQL 샘플 DB 적재 (0) | 2023.12.09 |