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

Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的詳細(xì)教程

 更新時間:2024年05月16日 10:08:48   作者:北冥牧之  
Docker是一種流行的容器化平臺,可以簡化應(yīng)用程序的部署和管理,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

雖然 docker 安裝 mysql 不是一個很好的方案,但是為了個人使用方便,使用 docker 安裝 mysql 還是沒什么問題的。

本文為了方便,我們直接通過yum方式安裝。所以,我們在安裝之前需要電腦可以聯(lián)網(wǎng),不然我們這種方式是安裝不了的。

當(dāng)然,你也可以自行下載mysql鏡像,然后再通過 docker 安裝,不過這不在本文的討論范圍。

一、拉取鏡像

# 拉取鏡像
docker pull mysql

# 或者
docker pull mysql:latest

# 以上兩個命令是一致的,默認(rèn)拉取的就是 latest 版本的

# 我們還可以用下面的命令來查看可用版本:
docker search mysql

二、查看鏡像

使用以下命令來查看是否已安裝了 mysql鏡像

docker images

三、運(yùn)行鏡像

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

命令解決:

 -p 3306:3306:指定宿主機(jī)端口與容器端口映射關(guān)系

--name mysql:創(chuàng)建的容器名稱

--restart=always:總是跟隨docker啟動

--privileged=true:獲取宿主機(jī)root權(quán)限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目錄,宿主機(jī):容器
-v /usr/local/mysql/data:/var/lib/mysql:映射數(shù)據(jù)目錄,宿主機(jī):容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目錄,宿主機(jī):容器
-v /etc/localtime:/etc/localtime:ro:讓容器的時鐘與宿主機(jī)時鐘同步,避免時區(qū)的問題,ro是read only的意思,就是只讀。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql環(huán)境變量,root用戶的密碼為123456

-d mysql:latest:后臺運(yùn)行mysql容器,版本是latest。

或者使用下面的命令:

docker run --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf.d:/etc/mysql/conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:latest

四、查看正在運(yùn)行的容器

# 查看正在運(yùn)行的容器
docker ps
# 查看所有的docker容器
docker ps -a

這個時候如果顯示的是up狀態(tài),那就是啟動成功了。如果是restarting,說明是有問題的。我們可以查看日志:

docker logs -f mysql

 可能會發(fā)現(xiàn):

Failed to access directory for --secure-file-priv. Please make sure that dir

 此時如果我們執(zhí)行第五步也會報(bào)錯:

Error response from daemon: Container xxx is restarting, wait until the cont。。。

此時我們需要執(zhí)行第六步。 

五、查看容器內(nèi)部

docker exec -it mysql /bin/bash

六、修改mysql配置

 創(chuàng)建mysql配置文件:my.cnf

cd /usr/local/mysql

ll

cd conf

vi my.cnf

在 my.cnf 文件中 寫入如下內(nèi)容:

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 設(shè)置東八區(qū)時區(qū)
default-time_zone = '+8:00'

# 設(shè)置密碼驗(yàn)證規(guī)則,default_authentication_plugin參數(shù)已被廢棄

# 改為authentication_policy

#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password

# 限制導(dǎo)入和導(dǎo)出的數(shù)據(jù)目錄
# 為空,不限制導(dǎo)入到處的數(shù)據(jù)目錄;
# 指定目錄,必須從該目錄導(dǎo)入到處,且MySQL不會自動創(chuàng)建該目錄;
# 為NULL,禁止導(dǎo)入與導(dǎo)出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=

init_connect='SET collation_connection = utf8mb4_0900_ai_ci'

init_connect='SET NAMES utf8mb4'

character-set-server=utf8mb4

collation-server=utf8mb4_0900_ai_ci

skip-character-set-client-handshake

skip-name-resolve

默認(rèn)的鑒權(quán)方式,我們修改為mysql_native_password,不然的話連接會報(bào)錯。因?yàn)樵趍ysql8以后的默認(rèn)加密方式改變了,由 mysql_native_password 改為了caching_sha2_password。這種加密凡是在客戶端無法訪問,客戶端支持的是mysql_native_password 。我們先進(jìn)行第七步。

七、重啟mysql服務(wù),使其配置生效

docker restart mysql

八、設(shè)置docker啟動時啟動mysql

docker update mysql --restart=always

九、重啟mysql

docker restart mysql

十、授權(quán)遠(yuǎn)程訪問

不進(jìn)行授權(quán)直接登陸的話會報(bào)錯的,如圖:

錯誤內(nèi)容:

Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
  Connection refused: connect
  Connection refused: connect

10.1 進(jìn)入容器內(nèi)部

docker exec -it mysql /bin/bash

10.2 登陸mysql

mysql -u root -p

 此時我們使用mysql客戶端連接服務(wù)器是失敗的,因?yàn)槟J(rèn)的root不具有遠(yuǎn)程連接的權(quán)限。

 上面的密碼不要輸入,直接回車進(jìn)入。

10.3 選擇數(shù)據(jù)庫

show databases;
use mysql;

不要忘記最后的分號。

10.4 查看用戶連接情況

select host, user, plugin,  authentication_string, password_expired from user;

我們看到root用戶只有l(wèi)ocalhost的連接權(quán)限。

10.5 修改密碼認(rèn)證方式

ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';

ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

-- 刷新權(quán)限
FLUSH PRIVILEGES;

10.6 退出容器

exit

先輸入exit退出mysql,再輸入exit退出容器。

此時,我們通過客戶端工具就可以連接mysql了。

總結(jié)

到此這篇關(guān)于Docker安裝MySQL及授權(quán)遠(yuǎn)程訪問的文章就介紹到這了,更多相關(guān)Docker安裝MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決docker訪問外部https數(shù)字證書問題

    解決docker訪問外部https數(shù)字證書問題

    這篇文章主要介紹了docker訪問外部https數(shù)字證書問題,為了解決證書驗(yàn)證的問題,我們需要在構(gòu)建 docker 鏡像的時候?qū)?nbsp;ca-certificates 根證書裝上,需要的朋友可以參考下
    2022-09-09
  • ubuntu如何完全干凈的卸載docker

    ubuntu如何完全干凈的卸載docker

    這篇文章主要介紹了ubuntu如何完全干凈的卸載docker問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • docker部署管理工具portainer-ce的實(shí)現(xiàn)

    docker部署管理工具portainer-ce的實(shí)現(xiàn)

    Portainer是一個可視化的容器鏡像的圖形管理工具,利用Portainer可以輕松構(gòu)建,管理和維護(hù)Docker環(huán)境,本文主要介紹了docker部署管理工具portainer-ce的實(shí)現(xiàn),感興趣的可以了解一下
    2023-08-08
  • docker倉庫數(shù)據(jù)傳輸加密的問題小結(jié)

    docker倉庫數(shù)據(jù)傳輸加密的問題小結(jié)

    這篇文章主要介紹了docker倉庫數(shù)據(jù)傳輸加密的問題小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-12-12
  • docker的WSL2報(bào)錯解決步驟記錄

    docker的WSL2報(bào)錯解決步驟記錄

    這篇文章主要介紹了在使用Docker時遇到的WSL2不支持的問題,包括錯誤代碼、解決方法和常見問題,解決方法主要包括啟用BIOS虛擬化、安裝WSL2內(nèi)核、設(shè)置默認(rèn)WSL版本等步驟,需要的朋友可以參考下
    2025-04-04
  • 使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn)

    本文主要介紹了使用Jenkins+docker打包部署后端服務(wù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Docker重啟命令的使用詳解

    Docker重啟命令的使用詳解

    Docker重啟命令包括使用systemctl、service命令重啟Docker服務(wù),以及使用dockerrestart命令重啟Docker容器,在重啟Docker服務(wù)之前,建議先停止所有正在運(yùn)行的容器,并確保做好相應(yīng)的準(zhǔn)備和備份
    2025-03-03
  • Docker 提交倉庫的方法

    Docker 提交倉庫的方法

    這篇文章主要介紹了Docker 提交倉庫的方法,把我們東西上傳DockerHub,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Docker之實(shí)現(xiàn)掛載的三種方式匯總

    Docker之實(shí)現(xiàn)掛載的三種方式匯總

    這篇文章主要介紹了Docker之實(shí)現(xiàn)掛載的三種方式匯總,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境

    docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境

    這篇文章主要介紹了docker中搭建overlay 網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評論