在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux中如何使用Docker安裝MySQL

jf_78858299 ? 來源:運(yùn)維漫談 ? 作者:運(yùn)維漫談 ? 2023-05-12 16:22 ? 次閱讀

如果您是 MySQL 的新手或希望快速輕松地安裝 MySQL 數(shù)據(jù)庫(kù)的人,那么本文適合您,在本文中,我們將學(xué)習(xí)如何在 Linux 中使用 Docker 和 Docker compose 設(shè)置 MySQL。

讓我們首先設(shè)置 docker 環(huán)境來啟動(dòng) MySQL 容器。

1. 安裝 Docker

在啟動(dòng) MySQL docker 容器之前,您需要在您的機(jī)器上安裝 docker 和 docker-compose。

您還可以參考下面給出的官方 Docker 文檔鏈接,了解如何設(shè)置 Docker 和 Docker compose。

https://docs.docker.com/engine/install/
https://docs.docker.com/compose/install/

您可以運(yùn)行以下命令來檢查您正在運(yùn)行的 docker 和 docker-compose 版本。

$ docker --version
Docker version 20.10.11, build dea9396
$ docker-compose --version
docker-compose version 1.29.2, build unknown

2. 下載 MySQL Docker 鏡像

前往Docker Hub獲取MySQL docker 鏡像。重要的是您必須決定要運(yùn)行的 MySQL 版本。

運(yùn)行以下命令將 MySQL 映像從 docker hub 拉到您的機(jī)器上。

$ docker pull mysql:latest

注意:沒有必要使用標(biāo)簽“ latest”,默認(rèn)情況下它會(huì)拉取最新的圖像。

要檢查圖像是否在本地可用,您可以運(yùn)行以下命令:

$ docker images mysql

示例輸出:

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mysql        latest    b05128b000dd   12 days ago   516MB

現(xiàn)在圖像已準(zhǔn)備好啟動(dòng)容器。您也可以跳過此步驟并運(yùn)行“ docker run”命令,如下一節(jié)所示,如果本地不可用,它將拉取映像。

3. 啟動(dòng) MySQL 容器

運(yùn)行以下命令來啟動(dòng) MySQL docker 容器:

$ docker run --name mysql -p 3306:3306 -v mysql_volume:/var/lib/mysql/ -d -e "MYSQL_ROOT_PASSWORD=temp123" mysql

圖片

讓我們分解上面的命令,看看每個(gè)標(biāo)志的作用。

  • --name→ 為您的容器命名。如果您未指定此標(biāo)志,docker 將分配一些隨機(jī)生成的名稱。
  • -p→ 端口映射。MySQL 將偵聽端口,3306因此我們將端口 ( 3306→ 3306) 從您的主機(jī)映射到 docker 容器。主機(jī)端口不必是3306,它可以是任何可用的。

netstat在您的本地機(jī)器上運(yùn)行以下命令以檢查容器啟動(dòng)后映射的端口是否正在偵聽。

$ netstat -tlnup | grep -i 3306

示例輸出:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 168870/docker-proxy 
tcp6 0 0 :::3306 :::* LISTEN 168878/docker-proxy
  • -v→ 將卷附加到容器。docker 的默認(rèn)行為是一旦容器被移除就不會(huì)持久化數(shù)據(jù),因此您將丟失所有數(shù)據(jù)。

為了創(chuàng)建持久存儲(chǔ),我創(chuàng)建了名為“ mysql_volume”的卷。MySQL 將數(shù)據(jù)存儲(chǔ)在/var/lib/mysql/容器內(nèi),并在此處映射到 localhost 目錄/var/lib/docker/volumes/mysql_volume1/_data,因此您的數(shù)據(jù)將是持久的。

  • -d→ 將以分離模式啟動(dòng)和運(yùn)行容器。如果省略該-d標(biāo)志,那么您將在終端中看到容器啟動(dòng)日志,您必須打開一個(gè)新的終端會(huì)話才能連接到容器。
  • -e→ 環(huán)境變量。您必須使用以下任一參數(shù)設(shè)置 mysql root 用戶密碼。
  • MYSQL_ROOT_PASSWORD → 使用此環(huán)境變量設(shè)置您自己的密碼。
  • MYSQL_ALLOW_EMPTY_PASSWORD→ 將設(shè)置空白或空密碼。你必須設(shè)置MYSQL_ALLOW_EMPTY_PASSWORD=1.
  • MYSQL_RANDOM_ROOT_PASSWORD→ 容器啟動(dòng)時(shí)會(huì)生成隨機(jī)密碼。您必須設(shè)置MYSQL_RANDOM_ROOT_PASSWORD=1生成隨機(jī)密碼。

如果跳過此步驟,則會(huì)引發(fā)如下所示的錯(cuò)誤。

圖片

4. 檢查 MySQL 容器狀態(tài)

您可以使用以下命令檢查啟動(dòng)的容器狀態(tài):

$ docker ps

示例輸出:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
e1fb895f6f0f   mysql     "docker-entrypoint.s..."   3 minutes ago   Up 3 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

5.連接到MySQL數(shù)據(jù)庫(kù)

運(yùn)行以下命令連接到 MySQL 容器。

$ docker exec -it mysql bash

root通過運(yùn)行以下命令以用戶身份連接到 MySQL 數(shù)據(jù)庫(kù)。就我而言,我已經(jīng)通過MYSQL_ROOT_PASSWORD.

$ mysql -u root -p

圖片

如果您MYSQL_RANDOM_ROOT_PASSWORD=1在啟動(dòng)容器時(shí)使用過,那么您可以從日志中獲取自動(dòng)生成的密碼。

$ docker logs
$ docker logs mysql

圖片

自動(dòng)生成的root密碼會(huì)很長(zhǎng),不需要記住。您可以通過運(yùn)行以下查詢來重置 root 密碼。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysqlpassword';

將密碼“mysqlpassword”替換為您自己的密碼。您還可以創(chuàng)建自己的用戶并根據(jù)需要授予他權(quán)限。

6. 加載樣本數(shù)據(jù)

設(shè)置 mysql 的主要目的是加載一些數(shù)據(jù)并對(duì)其運(yùn)行查詢。有幾種方法可以加載數(shù)據(jù)。我有一個(gè)名為“ load_data.sql”的示例文件,其中包含以下查詢。

如果不存在足球,則創(chuàng)建數(shù)據(jù)庫(kù);

CREATE DATABASE IF NOT EXISTS football;

USE football;

CREATE TABLE IF NOT EXISTS players (
    player_name     VARCHAR(16)     NOT NULL,
    player_age      INT             NOT NULL,
    player_club     VARCHAR(16)     NOT NULL,
    player_country  VARCHAR(16)     NOT NULL
);

INSERT INTO players VALUES ("Messi",34,"PSG","Argentina");
INSERT INTO players VALUES ("Ronaldo",36,"MANU","Portugal");
INSERT INTO players VALUES ("Neymar",29,"PSG","Brazil");
INSERT INTO players VALUES ("Kane",28,"SPURS","England");
INSERT INTO players VALUES ("E Hazard",30,"MADRID","Belgium");

第一種方法是使用“ docker cp”命令將數(shù)據(jù)從本地機(jī)器復(fù)制到 docker 容器。

$ docker cp load_data.sql mysql:/tmp
$ docker exec -it mysql bash
$ ls -l /tmp/

現(xiàn)在您可以連接到 mysql 客戶端并運(yùn)行 source 命令或?qū)⑽募囟ㄏ虻?mysql 客戶端。

$ mysql -u root -p
mysql> source /tmp/load_data.sql

或者

$ mysql -u root -p < /tmp/load_data.sql

連接到數(shù)據(jù)庫(kù)并查詢您的表。

$ mysql -u root -p
mysql> show databases;
mysql> use football;
mysql> show tables;
mysql> select * from players;

圖片

第二種方法是.sql在運(yùn)行docker exec命令時(shí)重定向文件。

$ docker exec -i mysql mysql -u root -p < load_data.sql

7. 使用 Docker-Compose 設(shè)置 MySQL 容器

docker run您可以使用docker-compose快速啟動(dòng)容器,而不是拉取鏡像并運(yùn)行命令。當(dāng)您要?jiǎng)?chuàng)建多個(gè)容器時(shí),Docker-compose 最適合。

創(chuàng)建一個(gè)名為docker-compose.yml或docker-compose.yaml文件的文件。復(fù)制并粘貼以下 yaml 代碼。

version: '3.8'
services:
  database:
    image: mysql:latest
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: temp1234
    ports:
      - "3306:3306"
    volumes:
      - mysql_volume:/var/lib/mysql
volumes:
  mysql_compose_volume:

現(xiàn)在運(yùn)行以下命令,這將啟動(dòng) MySQL docker 容器。

$ docker-compose up

圖片

運(yùn)行以下命令以使用 docker-compose 檢查已啟動(dòng)容器的狀態(tài):

$ docker-compose ps

示例輸出:

Name              Command             State                          Ports                       
-------------------------------------------------------------------------------------------------
mysql   docker-entrypoint.sh mysqld   Up      0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp

8. 使用 MySQL Workbench 連接到 MySQL 數(shù)據(jù)庫(kù)

到目前為止,我們已經(jīng)看到了如何從容器內(nèi)部使用 mysql 客戶端連接到數(shù)據(jù)庫(kù)。您還可以使用任何 GUI 客戶端(如 mysql workbench、dbeaver、Heidi SQL 等)連接到數(shù)據(jù)庫(kù)。

無論您使用什么 GUI 客戶端,都要注意的重要一點(diǎn)是,啟動(dòng)容器時(shí)映射的端口是什么。

就我而言,我已經(jīng)映射了localhost ( 3306) ->容器( 3306)。所以如果我必須建立到數(shù)據(jù)庫(kù)的連接,我必須連接到localhost:3306或127.0.01:3306。

我使用 MySQL Workbench 作為我的 GUI 客戶端,如果您還沒有在您的機(jī)器上安裝 MySQL Workbench,那么您可以使用以下說明進(jìn)行安裝。

8.1. 在 Linux 中安裝 MySQL Workbench

導(dǎo)航到官方站點(diǎn)下載包文件,您必須選擇您的操作系統(tǒng)才能下載.deb或.rpm文件。

圖片

在下一步中,它會(huì)要求您登錄或注冊(cè),您可以通過單擊“不,謝謝,只需開始我的下載”選項(xiàng)跳過登錄或注冊(cè)。

圖片

在基于 Debian 的系統(tǒng)上,安裝 MySQL Workbench,如下所示:

$ cd
$ sudo apt install ./mysql-workbench-community_8.0.27-1ubuntu21.04_amd64.deb

在基于 RHEL 的系統(tǒng)上,安裝 MySQL Workbench,如下所示:

$ cd
$ sudo dnf localinstall ./mysql-workbench-community-8.0.27-1.el8.x86_64.rpm

安裝完成后,您可以從菜單或破折號(hào)啟動(dòng) mysql 工作臺(tái)。

圖片

8.2. 連接到 MySQL 數(shù)據(jù)庫(kù)

連接到在 docker 容器內(nèi)運(yùn)行的數(shù)據(jù)庫(kù),您應(yīng)該嘗試連接到localhost:3306或localhost:取決于您的容器的設(shè)置方式。

圖片

在連接到數(shù)據(jù)庫(kù)之前,您可以按“測(cè)試連接”來檢查 MySQL Workbench 是否能夠成功連接到數(shù)據(jù)庫(kù)實(shí)例。

圖片

現(xiàn)在您可以開始針對(duì)您創(chuàng)建的表運(yùn)行查詢。

圖片

9. 結(jié)論

在本文中,我們簡(jiǎn)要了解了如何在 docker 中啟動(dòng) MySQL 容器的使用docker run和docker-compose方法,如果你想設(shè)置 MySQL 用于測(cè)試或?qū)W習(xí)目的,Docker 就足夠了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210397
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3846

    瀏覽量

    64685
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    22120
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    829

    瀏覽量

    26743
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux系統(tǒng)如何使用rpm包方式安裝MySQL

    RPM包上傳到服務(wù)器的目錄,然后執(zhí)行如下rpm命令進(jìn)行安裝:[root@oldboytools]#rpm -qa|grep mysql#
    發(fā)表于 12-28 16:29

    linux yum安裝命令之MySQL

    有自身的問題,例如它繼承了rpm包的無法定制化安裝的問題,另外一個(gè)缺點(diǎn)是采用默認(rèn)的yum安裝時(shí),一般yum源帶的軟件版本都比較低,例如:截止作者寫作本文時(shí),使用CentOS6.8Linux默認(rèn)yum
    發(fā)表于 12-28 16:31

    使用docker安裝mysql5.6實(shí)例的恢復(fù)方法

    2018-12-23 從aliyun的drs全備恢復(fù)數(shù)據(jù)庫(kù)到dockermysql
    發(fā)表于 03-14 11:26

    ubuntu系統(tǒng)安裝docker

    linux-4.1.15軟件安裝:[size=14.6667px]sudo apt-get install docker-engine發(fā)現(xiàn)安裝成功了,也是運(yùn)行不起來。1.在內(nèi)核
    發(fā)表于 05-07 16:56

    LinuxDocker安裝操作

    1. 安裝Dockeryum install docker.x86_64
    發(fā)表于 07-12 07:30

    mysql數(shù)據(jù)庫(kù)跑在docker

    docker中使用MySQL數(shù)據(jù)庫(kù)
    發(fā)表于 08-15 14:26

    嵌入式系統(tǒng)安裝docker的步驟

    ,硬件或BSP升級(jí)只要保證接口兼容,運(yùn)行在容器里面的應(yīng)用就完全不受影響。一、設(shè)計(jì)思路想要在arm linux安裝docker,大多是基于armbian文件系統(tǒng)上安裝
    發(fā)表于 12-22 06:27

    安裝MySql鏡像的步驟

    -p #從host連接dockerMySql例如:> mysql -h 192.168.0.1 -P 3306 -u root -p如果可以進(jìn)入
    發(fā)表于 10-19 14:55

    linux安裝Apache+Php+Mysql

    linux安裝Apache+Php+Mysql(數(shù)字電源技術(shù)及其應(yīng)用)-文檔為在linux安裝Apache+Php+
    發(fā)表于 09-18 16:09 ?5次下載
    在<b class='flag-5'>linux</b>下<b class='flag-5'>安裝</b>Apache+Php+<b class='flag-5'>Mysql</b>

    linux云服務(wù)器如何安裝mysql

    本教程將介紹linux云服務(wù)器如何安裝mysql? 一、要求 運(yùn)行 Linux(任何發(fā)行版)的云服務(wù)器。 LAMP 堆棧(Apache、MySQL
    發(fā)表于 01-10 16:39 ?1838次閱讀
    <b class='flag-5'>linux</b>云服務(wù)器如何<b class='flag-5'>安裝</b><b class='flag-5'>mysql</b>

    docker 搜索鏡像,docker查看鏡像詳細(xì)信息(docker下載鏡像命令)

    search [parameter] [image] 通過“docker search用戶可以根據(jù)鏡像名稱和描述信息查找Docker Hub的鏡像。例如,以下命令可以找到所有名稱,包括“m
    的頭像 發(fā)表于 07-19 09:46 ?1912次閱讀

    使用Docker安裝WordPress教程

    本教程將向您展示如何使用 Docker Compose 在 Docker 容器運(yùn)行 WordPress 安裝
    的頭像 發(fā)表于 07-28 11:39 ?1604次閱讀
    使用<b class='flag-5'>Docker</b><b class='flag-5'>安裝</b>WordPress教程

    linux docker安裝部署

    了解如何在Linux安裝和部署Docker。 一、安裝Docker 在開始之前,請(qǐng)確保您的Linux
    的頭像 發(fā)表于 11-23 09:27 ?1215次閱讀

    docker部署mysql的壞處

    Docker 是一種虛擬化技術(shù),它允許開發(fā)人員在容器內(nèi)打包應(yīng)用程序及其所有依賴項(xiàng),從而實(shí)現(xiàn)在不同環(huán)境運(yùn)行相同的應(yīng)用程序的能力。然而,在使用 Docker 部署 MySQL 時(shí),也存在
    的頭像 發(fā)表于 11-23 09:29 ?1492次閱讀

    Docker運(yùn)行環(huán)境安裝

    、發(fā)布、測(cè)試和部署,可以幫助開發(fā)人員將最新版本代碼應(yīng)用到生產(chǎn)環(huán)境Docker可以安裝在多個(gè)平臺(tái)中,包括Mac、Windows和Linux。不過,生產(chǎn)環(huán)境還是推薦在
    的頭像 發(fā)表于 10-29 11:28 ?278次閱讀
    主站蜘蛛池模板: 久久久夜色精品国产噜噜 | www.九色视频| 婷婷五月五 | 久久综合色综合 | 你懂的在线视频播放 | 1024手机看片欧美日韩 | 性 色 黄 一级 | 黄色小视频日本 | 欧美黄色免费 | 激情综合在线观看 | bbbb毛片免费看 | 国产一区二区三区不卡观 | 天天干天天曰天天操 | 日日干夜夜欢 | 永久免费看黄 | 夜夜操网站 | ⅹxxxx68日本老师hd | 国产黄视频网站 | 5566成人免费视频观看 | 国产一级毛片外aaaa | 狠狠色噜噜狠狠狠狠2021天天 | 日韩一级片免费在线观看 | 欧美日本免费 | 久久美女精品国产精品亚洲 | 在线a网| china3p单男精品自拍 | 人人艹在线 | 性做久久久久久久久 | 夜夜爽一区二区三区精品 | 综合伊人久久 | 美国一级毛片不卡无毒 | 欧美一级视频免费观看 | 国产伦精一区二区三区 | 天天曰夜夜操 | 毛片视频免费网站 | 亚洲人成在线精品不卡网 | 爱爱456高清国语在线456 | 欧美交片| 女人被免费网站视频在线 | 国产三级a三级三级野外 | 理论在线视频 |