簡體   English   中英

不設置時,docker 容器 mysql-server 中的默認密碼是多少?

[英]What's default password in docker container mysql-server when you don't set one?

我嘗試運行 mysql 容器並連接 mysql 客戶端然后:

我使用了以下命令:

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

根據教程,最后一個命令允許我配置數據庫密碼但是當我引入第一個密碼時它失敗了......

在此處輸入圖像描述

第一個密碼是root,我得到一個不尋常的錯誤,然后我嘗試使用管理員,管理員甚至我的linux用戶密碼,但它們不起作用......

我想知道錯誤是什么?

有幾種方法可以查看密碼。 第一種方法 - 不要在守護進程模式下運行容器

檢查以下命令

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.

第二種方法 - 以守護程序模式運行容器並從日志中獲取密碼檢查以下命令以運行容器

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

然后運行以下命令來獲取密碼

docker logs mysql1 2>&1 | grep GENERATED

上述命令的 Output 為:

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

通過上述方法之一獲得密碼后,您可以使用該密碼使用以下命令登錄

docker exec -it mysql mysql -uroot -p

詢問時,輸入生成的 root 密碼(請參閱上面的說明以了解如何找到它)。 因為MYSQL_ONETIME_PASSWORD選項默認為 true,所以在您將 mysql 客戶端連接到服務器后,您必須通過發出以下語句重置服務器根密碼:

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

用您選擇的密碼替換password 重置密碼后,服務器就可以使用了。

參考: https://hub.docker.com/r/mysql/mysql-server/

按照以下文檔: https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html

您使用以下命令獲取密碼:

docker logs mysql 2>&1 | grep GENERATED

示例 output:

GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs

沒有默認密碼,請嘗試使用以下方式登錄:

sudo docker exec -it mysql mysql -u root

首次啟動mysql容器時,沒有默認密碼。 您在運行容器時設置的密碼是將分配給您的root的默認密碼。

啟動 MySQL 實例很簡單: $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:

其中some-mysql是您要分配給容器的名稱, my-secret-pw 是要為 MySQL 根用戶設置的密碼,而 tag 是指定您想要的 MySQL 版本的標簽。 有關相關標簽,請參見上面的列表。

docker inspect <container_name_here>命令 output 在其他參數中顯示 root 密碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM