1. 程式人生 > 實用技巧 >docker搭建mysql 使用者名稱密碼忘記了怎麼辦

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

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服務即可

參考:https://www.cnblogs.com/sablier/p/11605606.html

https://blog.csdn.net/xufengzhu/article/details/81112783

https://www.cnblogs.com/xietianhua/p/11345579.html

https://www.cnblogs.com/apexchu/p/11718445.html

https://blog.csdn.net/u013176681/article/details/72896727/