1.使用mysql/mysql-server:latest鏡像快速啟動(dòng)一個(gè)Mysql實(shí)例
docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:latest
![](/d/20211016/16a3c7560cb7918dd1b7f366be5c6467.gif)
- ilink_user_01是容器名稱(chēng),通過(guò)--name指令指定
- 123456為數(shù)據(jù)庫(kù)root的密碼,通過(guò)-e指定環(huán)境MYSQL_ROOT_PASSWORD為123456,-e (指定容器內(nèi)的環(huán)境變量)
- -d 使用-d參數(shù),容器會(huì)進(jìn)入到后臺(tái),用戶(hù)無(wú)法看到容器中的信息,也無(wú)法進(jìn)行操作
- 3307:3306 為端口映射,指定本地主機(jī)端口3307映射到容器的3306端口
2.進(jìn)入實(shí)例修改mysql配置信息
docker exec -it ilink_user_01 bash
![](/d/20211016/f4e7886497100d233bece32020b0b50f.gif)
- exec 可以在容器內(nèi)部直接執(zhí)行人員命令
- 參數(shù) -it 用來(lái)保存表中輸入的打開(kāi),在不影響容器內(nèi)其他應(yīng)用的潛艇先,用戶(hù)可以很容易的與容器進(jìn)行交互
3.查看MYSQL數(shù)據(jù)庫(kù)中所有用戶(hù)
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
![](/d/20211016/5371da58f18457d854ac69af99da4cd5.gif)
4.修改mysql的root用戶(hù)允許從任何ip登錄用戶(hù)
update mysql.user set host='%' where user='root';
flush privileges;
![](/d/20211016/12e0e83918d79ef12046dc8a38182399.gif)
5.使用navicat測(cè)試連接
![](/d/20211016/9c7a0495e3adaa3c95c1ce157a1f3cdb.gif)
出現(xiàn)authentication plugin 'caching_sha2_password',因?yàn)閙ysql鏡像是使用caching_sha2_password進(jìn)行加密的,而navicat沒(méi)有支持caching_sha2_password加密方式,
6.解決authentication plugin 'caching_sha2_password'
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
![](/d/20211016/80cd07b409c0c8a842e891e3285d2a91.gif)
7.重新使用navicat 連接
![](/d/20211016/92454c79797b33116578db9582680615.gif)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。