Docker 搭建 MySQL 服務

来源:https://www.cnblogs.com/dtdx/archive/2020/04/24/12764924.html
-Advertisement-
Play Games

安裝 Docker 請參考我的另一篇文章 "Docker 安裝及使用" 建立鏡像 拉取鏡像 檢查拉取是否成功 創建資料庫容器(不建立數據映射) 創建資料庫容器(建立數據映射) 檢查容器是否正確運行 遠程連接MySQL 進入docker本地連接mysql客戶端 遠程連接mysql 遠程連接軟體時要註意 ...


安裝 Docker

請參考我的另一篇文章

Docker 安裝及使用

建立鏡像

拉取鏡像

# 拉取最新版本鏡像
docker pull mysql

# 拉取執行版本鏡像
docker pull mysql:版本號

檢查拉取是否成功

docker images

image-20200424003317444

創建資料庫容器(不建立數據映射)

docker run -d --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

# -d 代表後臺運行
# -name 代碼容器名稱
# -p 代表埠映射,格式為  宿主機映射埠:容器運行埠
# -e 代表添加環境變數  MYSQL_ROOT_PASSWORD是root用戶的登陸密碼

創建資料庫容器(建立數據映射)

docker run -p 3306:3306 --name mysql-3307 \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:latest

# -v:主機和容器的目錄映射關係,":"前為主機目錄,之後為容器目錄

檢查容器是否正確運行

docker container ls
# 可以看到容器ID,容器的源鏡像,啟動命令,創建時間,狀態,埠映射信息,容器名字

遠程連接MySQL

進入docker本地連接mysql客戶端

sudo docker exec -it mysql bash
mysql -uroot -p123456

遠程連接mysql

遠程連接軟體時要註意問題

我們在創建容器的時候已經將容器的3306埠和主機的3306埠映射到一起,所以我們應該訪問:

host: 安裝mysql機器ip
port: 3306
user: root
password: 123456

無法連接到MySQL的幾個原因

  • 防火牆阻攔
# 開放埠:
$ systemctl status firewalld
$ firewall-cmd  --zone=public --add-port=3306/tcp -permanent
$ firewall-cmd  --reload
# 關閉防火牆:
$ sudo systemctl stop firewalld
  • 需要進入docker本地客戶端設置遠程訪問賬號
$ sudo docker exec -it mysql bash
$ mysql -uroot -p123456
mysql> grant all privileges on *.* to root@'%' identified by "password";

​ 原理:

# mysql使用mysql資料庫中的user表來管理許可權,修改user表就可以修改許可權(只有root賬號可以修改)

mysql> use mysql;
Database changed

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host                    | user      | password                                                                 |
+--------------+------+-------------------------------------------+
| localhost              | root     | *A731AEBFB621E354CD41BAF207D884A609E81F5E      |
| 192.168.1.1            | root     | *A731AEBFB621E354CD41BAF207D884A609E81F5E      |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql> grant all privileges  on *.* to root@'%' identified by "123456";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host                    | user      | password                                                                 |
+--------------+------+-------------------------------------------+
| localhost              | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
| 192.168.1.1            | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
| %                       | root      | *A731AEBFB621E354CD41BAF207D884A609E81F5E     |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

參考連接

https://www.cnblogs.com/sablier/p/11605606.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 環境 Windows Server 2012 R2 問題 日誌報錯: 原因 如果已在伺服器上禁用UAC,通常會出現此錯誤。 如果在伺服器上禁用了UAC,則我們還必須禁用 服務,以停止有關UAC文件虛擬化的事件ID錯誤。 解決辦法 禁用luafv服務 打開註冊表編輯器(regedit.exe)並導航到 ...
  • Paramiko : 是Python 用於控制liunx中文件的第三方庫,可創建文件,修改,刪除文件的內容等; 代碼實例: # -*- coding:utf-8 -*- import paramiko class ssh(object): def __init__(self,host,port,us ...
  • [TOC] 1.特殊符號 '' 所見即所得 "" 特殊符號會被解析運行 `` == $() 先運行裡面的命令 把結果留下 重定向符號 先清空文件的內容 然後追加文件的最後 追加重定向 追加文件的最後 2 錯誤重定向 只有錯誤的信息 才會通過這個漏洞進入文件中 2 錯誤追加重定向 ~ 當前用戶的家目錄 ...
  • [TOC] 1.對於文件來說rwx 2.對於目錄來說rwx 3.總結 ...
  • [TOC] 1.linux命令行快捷鍵 2.vi/vim快捷鍵 ...
  • [TOC] 1.手動docker鏡像的缺點 2.dockerfile常用指令 3.dockerfile實戰1 3.1.手動製作docker鏡像步驟 3.1.1.啟動容器安裝軟體服務 3.1.2.將安裝好服務的容器commit提交為鏡像 3.1.3.啟動新容器來測試新提交的鏡像 3.2.dockerf ...
  • [TOC] 1.製作docker鏡像的步驟 2.製作支持ssh遠程登陸的docker鏡像 2.1.啟動容器安裝軟體服務 2.2.將安裝好服務的容器commit提交為鏡像 2.3.啟動新容器來測試新提交的鏡像 3.製作支持ssh+httpd雙服務的鏡像 3.1.啟動容器安裝軟體服務 3.2.將安裝好服 ...
  • [TOC] 1.為什麼要使用docker數據捲 2.常見的docker數據捲命令 3.docker數據捲運用一 4.把宿主機的目錄掛載到容器中 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...