欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker獲取mysql賬號密碼的方法

 更新時間:2025年08月09日 12:12:03   作者:愛吃土豆的馬鈴薯?????????  
本文介紹Docker中獲取MySQL密碼的多種方法,包括檢查容器參數(shù)、啟動歷史、初始化腳本及用戶表,同時提供密碼重置流程以應(yīng)對忘記密碼的情況,感興趣的朋友快來跟隨小編一起學(xué)習(xí)吧

親測:

#獲取運(yùn)行中鏡像?通過 NAMES 獲取鏡像名稱
docker ps
#mysql-container為容器名稱
docker inspect mysql-container | grep -i MYSQL_ROOT_PASSWORD

查看Docker環(huán)境變量設(shè)置的密碼

  • 方法一:查看容器的運(yùn)行參數(shù)
    在Linux系統(tǒng)下,可以使用docker inspect命令獲取容器的詳細(xì)信息,其中包括環(huán)境變量的設(shè)置。假設(shè)你的MySQL容器名稱是mysql-container,執(zhí)行以下命令:
docker inspect mysql-container

命令執(zhí)行后會輸出大量JSON格式的信息,你可以通過搜索關(guān)鍵詞(如MYSQL_ROOT_PASSWORD )來查找密碼相關(guān)的設(shè)置。也可以結(jié)合grep命令簡化輸出,比如:

docker inspect mysql-container | grep -i MYSQL_ROOT_PASSWORD

-i參數(shù)表示不區(qū)分大小寫搜索,這樣能快速定位到包含MYSQL_ROOT_PASSWORD的行,查看設(shè)置的密碼。

  • 方法二:查看容器啟動歷史記錄
    如果你是在本地終端啟動的Docker容器,那么可以使用history命令查看歷史執(zhí)行過的命令。例如:
history | grep docker run

找到啟動MySQL容器的那行命令,查看是否通過-e參數(shù)設(shè)置了MYSQL_ROOT_PASSWORD等環(huán)境變量,進(jìn)而獲取到設(shè)置的密碼 。不過這種方式只適用于你沒有清理過命令歷史記錄的情況。

查看docker-entrypoint-initdb.d里SQL文件中的密碼設(shè)置

  • 進(jìn)入容器查看相關(guān)目錄
    首先使用docker exec命令進(jìn)入MySQL容器,假設(shè)容器名稱是mysql-container,執(zhí)行:
docker exec -it mysql-container bash

進(jìn)入容器后,導(dǎo)航到docker-entrypoint-initdb.d目錄,使用ls命令列出該目錄下的文件:

ls /docker-entrypoint-initdb.d

然后使用文本編輯器(如vimcat命令 )查看具體的SQL文件內(nèi)容。比如,文件名為init-user-db.sql ,可以用以下方式查看:

cat /docker-entrypoint-initdb.d/init-user-db.sql

或者使用vim進(jìn)行編輯查看:

vim /docker-entrypoint-initdb.d/init-user-db.sql

在SQL文件中查找創(chuàng)建用戶和設(shè)置密碼的相關(guān)語句,常見的設(shè)置密碼語句如:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

或者

ALTER USER 'username'@'host' IDENTIFIED BY 'password';

找到這些語句就能獲取到設(shè)置的密碼信息。

在MySQL容器中,無法直接從配置文件里獲取明文密碼,因?yàn)閺腗ySQL 5.7版本開始,密碼以加密形式存儲在系統(tǒng)庫中 。不過,可以通過以下方式間接查看相關(guān)信息或重置密碼:

查看MySQL用戶表(加密密碼存儲處)

  1. 登錄MySQL:在容器內(nèi)的命令行,執(zhí)行登錄命令:
mysql -uroot -p

如果設(shè)置了root密碼,按提示輸入密碼回車登錄 。要是不知道root密碼,可嘗試后續(xù)重置密碼的方法。
2. 查看用戶表:登錄成功后,執(zhí)行以下SQL語句:

USE mysql;
SELECT user, host, authentication_string FROM user;

authentication_string 字段存儲的是加密后的密碼,但無法直接還原為明文。

查找可能的配置文件(不一定有密碼信息)

雖然通常無法從中獲取明文密碼,但還是可以檢查下常見的配置文件,看看是否有相關(guān)線索:

  • MySQL配置文件:路徑可能是 /etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf ,使用文本編輯器(如 vim )打開查看:
vim /etc/mysql/my.cnf

這些文件主要用于配置MySQL的運(yùn)行參數(shù),比如端口、字符集、緩存等,不一定包含密碼信息。

  • 容器初始化腳本:像 docker-entrypoint-initdb.d 目錄下的腳本文件,可能會有創(chuàng)建用戶、設(shè)置密碼等相關(guān)操作,你可以使用 ls 命令查看該目錄下的文件:
ls /docker-entrypoint-initdb.d

然后用文本編輯器打開查看內(nèi)容(如 vim 文件名 ),不過也可能經(jīng)過加密處理或使用環(huán)境變量設(shè)置密碼 。

重置密碼

如果忘記密碼,可按以下步驟重置:

  1. 停止MySQL服務(wù)
    根據(jù)MySQL服務(wù)管理方式,執(zhí)行相應(yīng)停止命令:
  • 若使用 service 管理:
service mysql stop
  • 若使用 systemctl 管理:
systemctl stop mysql
  1. 以特殊模式啟動MySQL
    在容器外,先停止MySQL容器:
docker stop mysql-container

再重新啟動容器并掛載配置文件目錄,進(jìn)入容器后編輯MySQL配置文件,在 [mysqld] 配置段添加 skip-grant-tables 以跳過權(quán)限驗(yàn)證。
3. 登錄并修改密碼
再次進(jìn)入容器,此時無需密碼即可登錄MySQL:

mysql

登錄后執(zhí)行SQL語句重置密碼(假設(shè)新密碼為 new_root_password ):

USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_root_password') WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
  1. 恢復(fù)正常模式
    刪除配置文件中添加的 skip-grant-tables ,重啟MySQL容器:
docker restart mysql-container

之后就能用新密碼登錄 。

1. 登錄MySQL

在當(dāng)前容器內(nèi)的命令行中, 執(zhí)行以下命令登錄MySQL :

mysql -uroot -p

如果MySQL的root用戶設(shè)置了密碼,系統(tǒng)會提示輸入密碼,輸入正確密碼后回車即可登錄。
要是不知道root密碼,先跳過此步驟,嘗試后續(xù)重置密碼的方法。

2. 查詢賬號信息(已登錄MySQL的情況下)

成功登錄MySQL后,執(zhí)行以下SQL語句:

USE mysql;
SELECT user, host FROM user;

上述SQL語句會列出當(dāng)前MySQL實(shí)例中的所有用戶賬號,以及這些賬號允許登錄的主機(jī)。

3. 重置密碼(忘記root密碼時)

停止MySQL服務(wù)

在容器內(nèi),根據(jù)MySQL服務(wù)的管理方式,執(zhí)行相應(yīng)的停止命令:

  • 若使用 service 管理:
service mysql stop
  • 若使用 systemctl 管理:
systemctl stop mysql

以特殊模式啟動MySQL

在容器外,先停止當(dāng)前MySQL容器:

docker stop xfyun-mysql-container

接著重新啟動容器,并掛載MySQL的配置文件目錄(具體掛載方式因鏡像而異)。進(jìn)入容器后,編輯MySQL的配置文件(常見路徑有 /etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf ) ,在 [mysqld] 配置段下添加 skip-grant-tables ,用于跳過權(quán)限驗(yàn)證。

登錄MySQL并修改密碼

再次進(jìn)入容器,此時無需密碼即可登錄MySQL:

mysql

登錄后,執(zhí)行以下SQL語句重置root密碼(假設(shè)新密碼為 new_root_password ):

USE mysql;
UPDATE user SET authentication_string = PASSWORD('new_root_password') WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;

恢復(fù)正常模式

修改完密碼后,刪除配置文件中添加的 skip-grant-tables ,然后重啟MySQL容器:

docker restart xfyun-mysql-container

之后就可以使用新設(shè)置的密碼登錄MySQL 。

4. 查看或修改其他用戶密碼(已登錄MySQL且有足夠權(quán)限)

如果想查看其他用戶的信息,可通過之前的 SELECT user, host FROM user; 語句 。
若要修改其他用戶的密碼,比如將 testuser 用戶的密碼修改為 newpassword ,執(zhí)行以下SQL語句:

ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

testuserlocalhost 根據(jù)實(shí)際情況替換 。

到此這篇關(guān)于docker如何獲取mysql的賬號密碼的文章就介紹到這了,更多相關(guān)docker mysql賬號密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux中docker的使用方法講解

    Linux中docker的使用方法講解

    本文給大家詳細(xì)介紹了linux中docker的使用,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • 給docker配置指定ip的超詳細(xì)圖解

    給docker配置指定ip的超詳細(xì)圖解

    這篇文章主要給大家介紹了關(guān)于給docker配置指定ip的超詳細(xì)圖解教程,Docker容器的IP地址由Docker守護(hù)進(jìn)程動態(tài)分配,默認(rèn)情況下,它使用的是宿主機(jī)的IP地址,但是在某些情況下,您可能需要為Docker容器指定靜態(tài)IP地址,需要的朋友可以參考下
    2023-09-09
  • win10家庭版安裝docker遇到的問題小結(jié)

    win10家庭版安裝docker遇到的問題小結(jié)

    這篇文章主要介紹了win10家庭版安裝docker遇到的問題小結(jié),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • windows下安裝docker的教程詳解

    windows下安裝docker的教程詳解

    這篇文章主要介紹了windows安裝docker的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • Next.js?Docker鏡像私有部署從零實(shí)現(xiàn)

    Next.js?Docker鏡像私有部署從零實(shí)現(xiàn)

    這篇文章主要為大家介紹了Next.js?Docker鏡像私有部署從零實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Docker安裝Nginx教程實(shí)現(xiàn)圖例講解

    Docker安裝Nginx教程實(shí)現(xiàn)圖例講解

    這篇文章主要介紹了Docker安裝Nginx教程圖例講解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 利用寶塔面板和docker快速部署網(wǎng)站的基本流程

    利用寶塔面板和docker快速部署網(wǎng)站的基本流程

    當(dāng)你有了一臺服務(wù)器,就會折騰往這臺服務(wù)器上部署各種好玩的網(wǎng)站,本文將以部署filebrowser舉例介紹網(wǎng)站部署的基本流程,感興趣的朋友一起看看吧
    2023-12-12
  • 基于docker搭建selenium分布式環(huán)境

    基于docker搭建selenium分布式環(huán)境

    這篇文章主要介紹了基于docker搭建selenium分布式環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載問題(推薦)

    使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載問題(推薦)

    Dockerfile就是一個可以用來構(gòu)建鏡像的文件,可以理解為一個腳本文件,可以通過這個腳本文件自定義生成一個我們想要的鏡像,鏡像都是一層一層的,里面的每一條命令就是一層,本文給大家介紹使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載,感興趣的朋友一起看看吧
    2022-03-03
  • 關(guān)于immich?docker-compose.yml配置文件詳解

    關(guān)于immich?docker-compose.yml配置文件詳解

    Immich是一個自托管的照片和視頻備份解決方案,允許用戶在私有服務(wù)器上存儲、管理和分享他們的媒體文件,項(xiàng)目提供了自托管、照片和視頻備份、易于訪問、數(shù)據(jù)控制、隱私保護(hù)等功能,通過Docker容器化部署,用戶可以方便地安裝和維護(hù)Immich應(yīng)用
    2025-03-03

最新評論