Docker MySQL 8詳解

一、Docker MySQL 8簡介

Docker是一種容器化技術,MySQL是一種流行數據庫。結合使用Docker和MySQL可以讓我們更方便地構建和部署數據庫環境。在Docker中,我們可以部署多個MySQL數據庫實例,提供完整的測試環境,而不必擔心不同版本或配置文件的衝突問題。在本文中,我們將詳細講解如何使用Docker來部署MySQL8。

二、Docker MySQL 8安裝

在開始之前,確保您已經安裝了Docker和Docker Compose。

1. 下載MySQL8鏡像:


docker pull mysql:8

2. 創建一個docker-compose.yml文件:


version: '3'
services:

  db:
    image: mysql:8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 3306:3306

3. 啟動MySQL8:


docker-compose up

4. 連接MySQL8:


mysql -uroot -pexample -h127.0.0.1 -P3306

三、Docker MySQL 8配置

MySQL8的默認配置允許外部訪問。為了更好的安全性,我們可以通過修改my.cnf文件來限制只允許本地訪問。

1. 創建custom.cnf文件:


[mysqld]
bind-address = 127.0.0.1

2. 修改docker-compose.yml文件:


version: '3'
services:

  db:
    image: mysql:8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 127.0.0.1:3306:3306
    volumes:
      - ./custom.cnf:/etc/mysql/conf.d/custom.cnf

3. 重新啟動MySQL:


docker-compose up

四、Docker MySQL 8備份和恢復

在Docker容器中運行的MySQL數據庫需要備份和恢復。我們可以使用mysqldump來備份和恢復MySQL數據庫。

1. 備份MySQL:


mysqldump -uroot -pexample mydatabase > mydatabase.sql

2. 恢復MySQL:


mysql -uroot -pexample mydatabase < mydatabase.sql

五、Docker MySQL 8常用命令

1. 顯示所有運行中的容器:


docker ps

2. 顯示所有的容器:


docker ps -a

3. 啟動某個容器:


docker start container_name

4. 停止某個容器:


docker stop container_name

5. 進入某個容器:


docker exec -it container_name bash

6. 移除某個容器:


docker rm container_name

7. 顯示所有鏡像:


docker images

8. 移除某個鏡像:


docker rmi image_name

六、結論

在本文中,我們詳細介紹了如何在Docker中部署MySQL8,並進行了一些基本配置、備份和恢復、常用命令等方面的講解。希望這篇文章能幫助大家更加深入地了解Docker和MySQL的結合使用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185422.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 12:18
下一篇 2024-11-26 12:18

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz這個依賴的解決方案

    當我們在linux centos系統中安裝docker-ce-18.03.1.ce-1.el7.centos.x86_64時,有時可能會遇到「nothing provides pi…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    編程 2025-04-27
  • docker-compose編寫用法介紹

    本文將詳細介紹docker-compose編寫的各個方面,包括語法、常見命令等等,旨在幫助讀者更好的了解如何使用docker-compose。 一、docker-compose的語…

    編程 2025-04-27
  • 如何使用MySQL字段去重

    本文將從多個方面為您詳細介紹如何使用MySQL字段去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27

發表回復

登錄後才能評論