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

docker部署mysql?9.0.1的實(shí)現(xiàn)

 更新時(shí)間:2025年02月24日 10:09:52   作者:灰色人生qwer  
本文主要介紹了docker部署mysql?9.0.1的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

docker 如何部署 mysql 9 ,請(qǐng)看下面步驟:

1. 先看 mysql 官網(wǎng)

在這里插入圖片描述

先點(diǎn)進(jìn)去 8 版本的 Reference Manual 。

在這里插入圖片描述

選擇 9.0 版本的。

在這里插入圖片描述

點(diǎn)到這里來看, 這里有一些基礎(chǔ)的安裝步驟,可以看一下。 - Basic Steps for MySQL Server Deployment with Docker

在這里插入圖片描述

有關(guān)使用 Docker 部署 MySQL Server 的更多主題,例如 服務(wù)器配置, 持久保存數(shù)據(jù)和配置, 服務(wù)器 錯(cuò)誤日志和容器環(huán)境變量,請(qǐng)參閱 第 2.5.6.2 節(jié) “有關(guān)使用 Docker 部署 MySQL 服務(wù)器的更多主題”。

在這里插入圖片描述

docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
-d container-registry.oracle.com/mysql/community-server:tag

OK, 上面是官網(wǎng)的教程,接下來寫上我自己的實(shí)操。

1. 首先我們要做下載 mysql 9.0.1 的鏡像

docker pull mysql:9.0.1

2. 然后運(yùn)行創(chuàng)建 mysql 容器

docker run -d \
--name mysql9 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
mysql:9.0.1

查看 mysql 是否正常啟動(dòng):

docker ps

可以看到已經(jīng)正常啟動(dòng)了。

在這里插入圖片描述

3. 但我們的目標(biāo)是要實(shí)現(xiàn)掛載mysql的 配置文件 到宿主機(jī)以便于修改 和 持久化 mysql 的數(shù)據(jù)。所以我們要先將 mysql 的 配置文件從容器中拷貝出來。

那么, mysql 9 的配置文件在哪呢?

我們從 dockerhub 倉(cāng)庫中可以看到 mysql 的配置文件在 /etc/mysql/my.cnf 。但是,你進(jìn)去 mysql 9 的容器中會(huì)發(fā)現(xiàn) 這個(gè)路徑找不到 my.cnf 文件。

在這里插入圖片描述

其實(shí) mysql 官網(wǎng)已經(jīng)提到了, 在 /etc/my.cnf 。

在這里插入圖片描述

OK,既然知道了配置文件的路徑,那就拷貝出來。

先在宿主機(jī)中創(chuàng)建下面文件夾用于存放 mysql 9 的配置文件 以及 將來要存儲(chǔ) mysql 的數(shù)據(jù)目錄。

mkdir -p /mydata/mysql/conf  /mydata/mysql/data

從 mysql 9 容器中拷貝配置文件出來:

docker cp mysql9:/etc/my.cnf /mydata/mysql/conf

4. 刪除 mysql 9 容器

docker stop mysql9
docker rm mysql9

5. 重新創(chuàng)建 mysql9 容器,并實(shí)現(xiàn)目錄掛在。

docker run --name=mysql9 --mount type=bind,src=/mydata/mysql/conf/my.cnf,dst=/etc/my.cnf --mount type=bind,src=/mydata/mysql/data,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:9.0.1

你知道這兩種寫法有什么不同嗎?請(qǐng)參考這篇文章 - 《docker 的目錄掛載的新語法》

–mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf
-v /path-on-host-machine/my.cnf:/etc/my.cnf

注意: -e MYSQL_ROOT_PASSWORD=root, 經(jīng)過我測(cè)試,這個(gè)密碼只能設(shè)置 root, 設(shè)置其他的登不進(jìn)去。如果不想設(shè)置為 root 密碼,那么需要?jiǎng)?chuàng)建新用戶,往下看,后面教程有教怎么創(chuàng)建新用戶。

使用root以外的密碼進(jìn)行登錄的時(shí)候會(huì)報(bào)如下錯(cuò)誤:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

到此 docker 就成功安裝了 mysql 9 了。

那下一步我們要做什么呢? 遠(yuǎn)程連接 mysql 。 沒錯(cuò),所以繼續(xù)往下看。

6. 修改配置文件添加允許遠(yuǎn)程訪問配置

編輯 /mydata/mysql/conf/my.cnf

在配置文件中找到 [mysqld] 部分,添加下面屬性

bind-address = 0.0.0.0

這會(huì)允許 MySQL 接受來自任何 IP 地址的連接。

修改完成后,需要重啟 mysql 容器。

docker restart mysql9

7. 登錄到 mysql 中賦予新用戶遠(yuǎn)程訪問的權(quán)限

注意:下面這段是舊 mysql 的用法了。在 mysql 9 中不能使用這種用法了。

# 1. 如果已經(jīng)有現(xiàn)有用戶,修改權(quán)限:
GRANT ALL PRIVILEGES ON database.* TO 'root'@'%' IDENTIFIED BY 'root';

FLUSH PRIVILEGES;

上面這種寫法在 mysql 9 中運(yùn)行會(huì)報(bào)如下錯(cuò)誤:

mysql>  GRANT ALL PRIVILEGES ON mysql.* TO 'root'@'%' IDENTIFIED BY 'root';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'root'' at line 1

在 MySQL 8.0 和 9.0 版本中,GRANT 語句的語法發(fā)生了一些變化,尤其是涉及到用戶創(chuàng)建和權(quán)限賦予的部分。特別地,MySQL 8.0+ 版本不允許在 GRANT 語句中直接使用 IDENTIFIED BY 來設(shè)置密碼,密碼設(shè)置應(yīng)該通過 CREATE USER 或 ALTER USER 語句進(jìn)行。

這個(gè)錯(cuò)誤是因?yàn)樵?MySQL 9.0.1 中,我們?cè)噲D在 GRANT 語句中使用 IDENTIFIED BY,而 MySQL 9.0.1 的語法不允許這樣做。

正確的做法:

# 1. 首先使用 CREATE USER 語句創(chuàng)建一個(gè)新用戶,并設(shè)置密碼:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';

# 2. 然后使用 GRANT 語句為該用戶授予權(quán)限:
GRANT ALL PRIVILEGES ON mysql.* TO 'username'@'%';

# 3. 最后,執(zhí)行 FLUSH PRIVILEGES 使權(quán)限立即生效:
FLUSH PRIVILEGES;

我們這里以 root 用戶舉例,在 mysql 庫 下的 user 表可以查看到已有用戶。

所以直接執(zhí)行下面語句就行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

然后再用 Navicate 去連接,已經(jīng)可以正常連接上了。

在這里插入圖片描述

到此這篇關(guān)于docker部署mysql 9.0.1的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker部署mysql 9.0.1內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 查看docker是否處于啟動(dòng)狀態(tài)的方法詳解

    查看docker是否處于啟動(dòng)狀態(tài)的方法詳解

    Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,本文主要給大家介紹了查看docker是否處于啟動(dòng)狀態(tài)的方法,需要的朋友可以參考下
    2024-06-06
  • 解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問題

    解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問題

    這篇文章主要介紹了解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn)

    Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn)

    本文主要介紹了Docker 跨主機(jī)容器間相互訪問的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • docker容器啟動(dòng)失敗如何查看日志

    docker容器啟動(dòng)失敗如何查看日志

    這篇文章主要介紹了docker容器啟動(dòng)失敗如何查看日志問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 一篇文章弄懂Docker鏡像的制作、上傳、拉取和部署

    一篇文章弄懂Docker鏡像的制作、上傳、拉取和部署

    Docker包含三個(gè)基本概念,分別是鏡像(Image)、容器(Container)和倉(cāng)庫(Repository),鏡像是 Docker 運(yùn)行容器的前提,這篇文章主要給大家介紹了如何通過一篇文章弄懂Docker鏡像的制作、上傳、拉取和部署的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 基于Docker的PHP調(diào)用基于Docker的Mysql數(shù)據(jù)庫

    基于Docker的PHP調(diào)用基于Docker的Mysql數(shù)據(jù)庫

    Docker 是一個(gè)開源的應(yīng)用容器引擎,自從接觸docker以來,一直想建立基于Docker的PHP調(diào)用基于Docker的Mysql數(shù)據(jù)庫,下面通過本文給大家介紹下,感興趣的朋友參考下
    2016-11-11
  • docker容器時(shí)區(qū)錯(cuò)誤問題

    docker容器時(shí)區(qū)錯(cuò)誤問題

    常出現(xiàn)docker中運(yùn)行的容器獲取到的時(shí)間與北京時(shí)間相差8小時(shí)的問題,其實(shí)是因?yàn)槿萜鬟\(yùn)行的時(shí)區(qū)不正確。本文主要介紹了docker容器時(shí)區(qū)錯(cuò)誤問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 一文搞定Docker安裝ElasticSearch的過程

    一文搞定Docker安裝ElasticSearch的過程

    通過本文可以幫助大家快速學(xué)習(xí)Docker安裝ElasticSearch的過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-08-08
  • docker容器如何查看運(yùn)行日志

    docker容器如何查看運(yùn)行日志

    這篇文章主要介紹了docker容器如何查看運(yùn)行日志問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Docker?下MySQL數(shù)據(jù)庫的備份和恢復(fù)的操作方法

    Docker?下MySQL數(shù)據(jù)庫的備份和恢復(fù)的操作方法

    這篇文章主要介紹了Docker?下MySQL數(shù)據(jù)庫的備份和恢復(fù)操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02

最新評(píng)論