m1 맥북에 mysql 5.7 버전을 설치하려고 했는데 왜 안돼... 지원을 안 해주나 보다... 인텔이 아니라서 그런가..
mysql 8 버전은 설치해서 잘 작동하는 것은 확인했다.
그래서 결국 docker 에 mysql 5.7 버전 올려서 사용하기로 했다.
도커에서 mysql 이미지 버전 확인
jhnam@jhnamui-MacBookPro v2 % docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13093 [OK]
mariadb MariaDB Server is a high performing open sou… 5005 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 615 [OK]
percona Percona Server is a fork of the MySQL relati… 584 [OK]
bitnami/mysql Bitnami MySQL Docker Image 76 [OK]
linuxserver/mysql-workbench 42
linuxserver/mysql A Mysql container, brought to you by LinuxSe… 37
ubuntu/mysql MySQL open source fast, stable, multi-thread… 36
circleci/mysql MySQL is a widely used, open-source relation… 27
google/mysql MySQL server for Google Compute Engine 21 [OK]
rapidfort/mysql RapidFort optimized, hardened image for MySQL 13
bitnami/mysqld-exporter 3
ibmcom/mysql-s390x Docker image for mysql-s390x 2
newrelic/mysql-plugin New Relic Plugin for monitoring MySQL databa… 1 [OK]
vitess/mysqlctld vitess/mysqlctld 1 [OK]
hashicorp/mysql-portworx-demo 0
docksal/mysql MySQL service images for Docksal - https://d… 0
mirantis/mysql 0
cimg/mysql 0
drud/mysql 0
silintl/mysql-backup-restore Simple docker image to perform mysql backups… 0 [OK]
corpusops/mysql https://github.com/corpusops/docker-images/ 0
drud/mysql-local-57 ddev mysql local container 0
drud/mysql-docker-local-57 This repo has been deprecated, new tags are … 0
drud/mysql-docker-local docker containers for local womysql rk 0 [OK]
최신 버전 이미지는 아마 8 버전이겠지?
mysql 5.7 버전을 태그로 이미지를 pull 하니 아래와 같은 메시지가 나왔다.
% docker pull mysql:5.7
5.7: Pulling from library/mysql
no matching manifest for linux/arm64/v8 in the manifest list entries
m1 이라서 그런 거니 ㅠㅠ arm64 에서 사용할 수 있는 것을 확인했는데 매칭 되지 않는다고 나온다.
아래의 명령어를 통해 플랫폼을 지정해줄 수 있다고 해서 해봤는데 역시 같은 결과가 나왔다.
% docker pull --platform liunx/amd64 mysql:5.7
5.7: Pulling from library/mysql
no matching manifest for liunx/amd64 in the manifest list entries
*** 추가 )
위의 명령어에서 오타가 나서 매칭이 되지 않았던 것 같다.. ㅎㅎ
너무 감사하게도 댓글로 말씀해주셔서.. 이렇게 참고로 글에도 적어두려고 한다.
docker pull --platform liunx/amd64 mysql:5.7 -> docker pull --platform linux/amd64 mysql:5.7
docker-compose 사용해서 mysql 5.7 버전 설치
여기저기 찾아보다가 docker-compose 를 사용해서 할 수 있는 방법을 찾았다.
[docker-compose.yaml 파일 내용]
version: '3'
services:
local-db:
image: library/mysql:5.7
container_name: infra-mysql
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Seoul
volumes:
- ./db/mysql/data:/var/lib/mysql
- ./db/mysql/init:/docker-entrypoint-initdb.d
platform: linux/amd64
이렇게 작성하고나서 실행해주면 도커 컨테이너가 실행되는 것을 확인할 수 있다.
docker-compose up -d
도커 컨테이너 확인
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23ade38e953e mysql:5.7 "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp infra-mysql
컨테이너 접속
docker exec -it infra-mysql bash
컨테이너 접속 후 mysql 접속 확인
bash-4.2# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql 접속 완료!
mysql connect 해서 원격으로 접속하기
mysql 에 접속해서 root 패스워드 변경하기
mysql> alter user 'root'@'%' identified with mysql_native_password by '변경하고싶은패스워드';
root 계정의 모든 권한 부여
mysql> grant all privileges on *.* to 'root'@'%';
변경된 설정 적용
mysql> flush privileges;
원격으로 접속할 수 있게 mysql 설정을 변경했다.
이제 접속하면 되는데 나는 맥북에 도커를 설치해서 로컬에서만 사용하려고 만들었기 때문에
localhost(127.0.0.1) 을 통해서 접속하면 된다.
접속 테스트 완료 😆
- 참고 사이트 -
'데이터 엔지니어링 > Database' 카테고리의 다른 글
Mysql 8 버전 Sequal Pro 접속 에러 (0) | 2023.04.14 |
---|---|
Mysql - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) (0) | 2023.03.08 |
Mysql CASE 문법 사용법 (0) | 2022.12.05 |
RDBMS 와 NoSQL 비교 (0) | 2022.11.29 |
MacOS Mysql - ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (0) | 2022.08.07 |