docker搭建mysql 使用者名稱密碼忘記了怎麼辦

2022-06-29 12:39:12 字數 2008 閱讀 9840

1.先確定mysql使用的版本及mysql中的非系統庫及系統庫是否有沒有掛載

docker run -p 3306:3306 --name mysql \

-v /usr/local/docker/mysql/conf:/etc/mysql \

-v /usr/local/docker/mysql/logs:/var/log/mysql \

-v /usr/local/docker/mysql/data:/var/lib/mysql \

-e mysql_root_password=123456 \

-d mysql:5.7

即:上述命令中的 -v 命令 及之後的引數,沒有掛載的拷貝到宿主機中指定目錄/usr/local/docker/mysql

2.在乙個新的linux環境中,重新構建mysql服務,使用上述命令.

#使用新的使用者名稱密碼登入

mysql -uroot -p123456

3.執行show databases後,選擇mysql系統庫

4.新增新的使用者

#允許本地 ip訪問localhost的mysql資料庫

create user 'editest'@'localhost' identified by 'editest123456';

#允許外網ip訪問資料庫editest,本命令包含上面的命令,是所有的ip都可以訪問該資料庫

create user 'editest'@'%' identified by 'editest123456';

#使用者建立完成後,重新整理授權

flush privileges;

5.為新增的使用者editest賦予editestdb庫的許可權

#賦予editestdb庫所有許可權

#本地grant all privileges on `editestdb`.* to 'editest'@'localhost' identified by 'editest123456' with grant option;

#遠端grant all privileges on `editestdb`.* to 'editest'@'%' identified by 'editest123456' with grant option;

#賦予editestdb庫部分許可權
grant select on editestdb.* to 'editest'@'localhost'; /*給予查詢許可權*/

grant insert on editestdb.* to 'editest'@'localhost'; /*新增插入許可權*/

grant delete on editestdb.* to 'editest'@'localhost'; /*新增刪除許可權*/

grant update on editestdb.* to 'editest'@'localhost'; /*新增許可權*/

#重新整理授權

flush privileges;

6.找到新建立mysql服務/usr/local/docker/mysql/data(下圖掛載目錄不同:請忽略)掛載目錄下的3個檔案user.frm、user.myd、user.myi

7.將找到的這三個檔案,拷貝到原來mysql服務的指定掛載目錄下(如:/usr/local/docker/mysql/data)根據自己的掛載目錄而定, 然後重啟mysql服務即可

參考: 

Docker搭建Mysql服務

查詢 mysql的映象 dokcer search mysql docker pull mysql 5.7.19 2 cd users bing opt docker 3 啟動mysql映象,即為建立乙個容器 docker run d p 3307 3306 name bing mysql v pw...

docker 搭建mysql環境

有時候,mysql的版本管理讓我覺得很煩。根本原因是mysql的版本的驅動的關聯,如果驅動和mysql版本對不上,那就麻煩了,找驅動不難,但是換資料庫麻煩呀。所以我就想到在docker中搭建乙個mysql環境,對映到本機使用,在開發測試的時候還是很方便哦。首先需要安裝docker,安裝教程 在doc...

認識Docker並搭建MySQL

最近發現docker容器技術非常火,恰好剛想重灌伺服器上的mysql,就想把mysql搭建在docker執行使用,趕緊學習下 1 簡化程式 docker 讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,便可以實現虛擬化。docker改變了虛擬化的方...