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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM