programing

도커 컨테이너 mysql-server에서 설정하지 않을 때 기본 암호는 무엇입니까?

codeshow 2023. 10. 19. 22:51
반응형

도커 컨테이너 mysql-server에서 설정하지 않을 때 기본 암호는 무엇입니까?

mysql 컨테이너를 실행하고 mysql 클라이언트와 연결하려고 합니다.

다음 명령을 사용했습니다.

docker run --name=mysql -d mysql/mysql-server:latest
docker exec -it mysql mysql -uroot -p

자습서에 따르면 마지막 명령을 사용하면 데이터베이스 암호를 구성할 수 있지만 첫 번째 암호를 도입하면 실패합니다.

enter image description here

첫번째 암호는 root 이었고 특이한 오류가 발생했습니다. 그런 다음 admin으로 시도하고 Linux 사용자 암호까지 관리하려고 하지만 작동하지 않습니다...

무엇이 잘못되었는지 알고 싶습니다.

암호를 확인하는 몇 가지 방법이 있습니다.First Approach - 데몬 모드에서 컨테이너 실행 안 함

아래 명령을 확인합니다.

docker run --name=mysql mysql/mysql-server:latest

그리고 이것은 아래의 로그를 보는 것처럼 단말기에 비밀번호를 인쇄할 것입니다.

2020-05-28T23:41:01.418347Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
2020-05-28T23:41:01.666070Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-28T23:41:01.714420Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.20'  socket: '/var/lib/mysql/mysql.sock'  port: 0  MySQL Community 
Server - GPL.
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
[Entrypoint] GENERATED ROOT PASSWORD: PopiKQIjAS#OGj3x]yJOBLEn80p
[Entrypoint] ignoring /docker-entrypoint-initdb.d/*
2020-05-28T23:41:06.208480Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.20).
2020-05-28T23:41:07.861667Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.20)  MySQL Community Server - GPL.
[Entrypoint] Server shut down
[Entrypoint] Setting root user as expired. Password will need to be changed before database can be used.
[Entrypoint] MySQL init process done. Ready for start up.
[Entrypoint] Starting MySQL 8.0.20-1.1.16
2020-05-28T23:41:08.534785Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.20) starting as process 1
2020-05-28T23:41:08.549216Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-05-28T23:41:09.135591Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-05-28T23:41:09.369412Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
2020-05-28T23:41:09.448584Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2020-05-28T23:41:09.500464Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.20'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Communi
ty Server - GPL.

Second Approach - 컨테이너를 데몬 모드로 실행하고 로그에서 암호를 가져옵니다. 컨테이너를 실행하려면 아래 명령을 확인하십시오.

docker run -d --name=mysql mysql/mysql-server:latest

다음 명령을 실행하여 암호를 가져옵니다.

docker logs mysql 2>&1 | grep GENERATED

위 명령의 출력은 다음과 같습니다.

[Entrypoint] GENERATED ROOT PASSWORD: PopiKQIjAS#OGj3x]yJOBLEn80p

위에 언급한 방법 중 하나로 비밀번호를 입력하면 해당 비밀번호를 사용하여 아래 명령으로 로그인할 수 있습니다.

docker exec -it mysql mysql -uroot -p

메시지가 나타나면 생성된 루트 암호를 입력합니다(위의 찾기 방법 참조).왜냐하면.MYSQL_ONETIME_PASSWORD옵션은 기본적으로 true이며, mysql 클라이언트를 서버에 연결한 후 다음 문장을 실행하여 서버 루트 암호를 재설정해야 합니다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

대체물password당신이 선택한 비밀번호로 말입니다.비밀번호가 재설정되면 서버를 사용할 준비가 됩니다.

참조: https://hub.docker.com/r/mysql/mysql-server/

docker inspect <container_name_here>명령 출력에 다른 매개 변수 중 루트 암호가 표시됩니다.

시작할 때mysql 처음으로 컨테이너에 기본 암호가 없습니다.컨테이너를 실행하는 동안 설정한 암호는 사용자에게 할당되는 기본 암호입니다.root.

MySQL 인스턴스를 시작하는 것은 간단합니다. $docker run --name some- mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw-d mysql:tag

여기서 some-mysql은 컨테이너에 할당할 이름이고, my-secret-pw는 MySQL 루트 사용자에게 설정할 암호이며, tag는 원하는 MySQL 버전을 지정하는 태그입니다.관련 태그는 위 목록을 참조하십시오.

다음 문서를 참조하십시오. https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html

다음 명령을 사용하여 암호를 얻을 수 있습니다.

docker logs mysql 2>&1 | grep GENERATED

출력 예시:

GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs

기본 암호가 없습니다. 다음을 사용하여 로그인해 보십시오.

sudo docker exec -it mysql mysql -u root

언급URL : https://stackoverflow.com/questions/62072977/whats-default-password-in-docker-container-mysql-server-when-you-dont-set-one

반응형