MySQL 8 on docker
MySQL 최신버전(8.0.13)을 docker container로 실행했더니 접속시 오류가 발생했다.
Authentication plugin ‘caching_sha2_password’ cannot be loaded:
MySQL 8 이상에서는 SHA-256 으로 사용자 계정의 암호를 설정할 수 있고
caching_sha2_password 는 authentication 시에 서버측에서 캐싱을 하기 위한 모듈이다.
그런데 현재 대부분의 mysql client는 (구버전인 이유로) caching_sha2_password 모듈이 존재 하지 않는다.
--default-authentication-plugin=mysql_native_password
옵션을 추가해서 기본 authentication 설정을 바꾸어주면 이전 버전의 MySQL 처럼 접속 할 수 있다.
PASSWORD: password
docker run -d --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql --default-authentication-plugin=mysql_native_password
Empty PASSWORD
docker run -d --name some-mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql --default-authentication-plugin=mysql_native_password
Empty PASSWORD & Binding localhost
docker run -d --name some-mysql -p 127.0.0.1:3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql --default-authentication-plugin=mysql_native_password
MySQL with docker volume
docker volume create mysql
docker run -d --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v mysql:/var/lib/mysql mysql