MySQL的Docker版本,部署在ubantu系統

前言

MySQL的Docker版本,部署在ubantu系統,出現問題:
1.執行一個SQL,只有錯誤編碼,沒有錯誤提示信息,主要影響排查SQL運行問題;
2.這個問題,并不影響實際的MySQL運行,如果數據庫已經很多數據,就不要再亂動了。
如下圖:錯誤演示
正常應該是:
正常演示

嘗試解決

參考別人的博客,mysql執行語句后只有錯誤代碼,沒有錯誤信息
經過排查可能是兩個方向:

  1. .cnf 配置錯誤
  2. MySQL的日志映射到宿主機錯誤。

經過參考博客,最終沒有解決該問題,同時我的數據庫數據不多,準備重新部署MySQL5.7.

MySQL5.7,docker版本部署

整理了一下部署流程,掛載MySQL的數據、日志、配置文件,同時處理容器內時間同步問題等。由于時間問題,并沒有在生產環境長期運行,故慎重!!!

1. 拉取鏡像

sudo docker pull mysql:5.7

2. 宿主機掛載目錄準備

sudo mkdir -p /data/mysql/logs
sudo chmod -R 777 /data/mysql/logs
sudo mkdir -p /data/mysql/data
sudo mkdir -p /data/mysql/conf

3.配置文件

cd /data/mysql/conf
sudo touch my.cnf
[mysqld]
user=mysql 
character-set-server=utf8mb4  # 與啟動參數統一 
collation-server=utf8mb4_general_ci 
default_authentication_plugin=mysql_native_password 
default-time_zone = '+8:00'  # 強制服務端時區
log_timestamps = SYSTEM     # 確保日志時間戳同步 
log-error = /var/log/mysql/error.log   # 強制指定路徑 
slow_query_log = 1  # 啟用慢查詢日志
slow_query_log_file = /var/log/mysql/slow.log 
general_log = 0  # 按需開啟[client]
default-character-set=utf8mb4 [mysql]
default-character-set=utf8mb4

4.啟動命令

docker run -d \--restart=always \--name=mysql_5.7 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456 \-p 3306:3306 \-v /data/mysql/data:/var/lib/mysql \-v /data/mysql/conf:/etc/mysql/conf.d \-v /data/mysql/logs:/var/log/mysql \-v /etc/localtime:/etc/localtime:ro \-v /usr/share/zoneinfo/Asia/Shanghai:/usr/share/zoneinfo/Asia/Shanghai:ro \mysql:5.7 \--character-set-server=utf8mb4 \--collation-server=utf8mb4_general_ci
  • -e TZ=Asia/Shanghai 設置容器時區為上海,確保日志時間與本地一致。
  • -e MYSQL_ROOT_PASSWORD=123456 定義 MySQL 的 root 用戶密碼
  • -p 3306:3306 將容器內的 3306 端口映射到宿主機的 3306 端口,允許外部通過 宿主機IP:3306 訪問 MySQL
  • -v /data/mysql/data:/var/lib/mysql 掛載 MySQL 數據目錄,避免容器刪除后數據丟失。
  • -v /data/mysql/conf:/etc/mysql/conf.d 映射自定義配置文件目錄(可放置 my.cnf 覆蓋默認配置)。
  • -v /data/mysql/logs:/var/log/mysql 持久化 MySQL 日志,便于故障排查。
  • -v /etc/localtime:/etc/localtime:ro -v /usr/share/zoneinfo/Asia/Shanghai:/usr/share/zoneinfo/Asia/Shanghai:ro 雙重保障容器時區與宿主機同步(某些鏡像可能依賴不同時區文件)。
  • --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 設置默認字符集為 utf8mb4(支持 Emoji 和四字節字符),排序規則為通用格式。

運行完成以后檢查數據、日志是否掛載到宿主機

  • /data/mysql/logs/下
    應該存在 error.log 和 slow.log 日志
  • /data/mysql/data/下
    應該存在MySQL的數據庫文件
  • /data/mysql/conf/
    應該存在my.cnf
    宿主機上MySQL掛載的數據/日志/配置等

其他驗證步驟

1.檢查掛在映射

docker inspect mysql_5.7 | grep -A 10 "Mounts"

確認Destination為/var/log/mysql
在這里插入圖片描述

2.容器內日志生成記錄

docker exec mysql_5.7 touch /var/log/mysql/test.log 
ls -l /data/mysql/log  # 查看宿主機是否生成test.log 

在這里插入圖片描述

3.實時日志追蹤

docker exec mysql_5.7 tail -f /var/log/mysql/error.log 

4.配置文件加載驗證

docker exec mysql_5.7 mysql --verbose --help | grep "cnf"

在這里插入圖片描述

PS:
如果你看到這里,希望我的分享,可以幫到你,感謝你的閱讀,愿我們在代碼世界變得更強!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80824.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80824.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

專欄特輯丨懸鏡淺談開源風險治理之SBOM與SCA

隨著容器、微服務等新技術日新月異,開源軟件成為業界主流形態,軟件行業快速發展。但同時,軟件供應鏈也越來越趨于復雜化和多樣化,軟件供應鏈安全風險不斷加劇。 軟件供應鏈安全主要包括軟件開發生命周期和軟件生存運營周期&#x…

18.Excel數據透視表:第1部分創建數據透視表

一 什么是數據透視表 通過萬花筒可以用不同的方式査看里面畫面圖像,在excel中可以將數據透視表看作是對準數據的萬花筒,用不同角度去觀察數據,也可以旋轉數據,對數據進行重新排列,對大量的數據可以快速的匯總和建立交叉…

商業航天運動控制系統中的高可靠性芯片解決方案:挑戰、策略與應用研究

摘要:隨著商業航天領域的迅速發展,運動控制系統對芯片的可靠性提出了前所未有的挑戰。本文深入探討了商業航天運動控制系統中芯片可靠性面臨的挑戰,包括宇宙輻射效應、極端環境適應性及系統級可靠性保障等。同時,通過案例研究展示…

音視頻學習:使用NDK編譯FFmpeg動態庫

1. 環境 1.1 基礎配置 NDK 22b (r22b)FFmpeg 4.4Ubuntu 22.04 1.2 下載ffmpeg 官網提供了 .tar.xz 包,可以直接下載解壓: wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.xz tar -xvf ffmpeg-4.4.tar.xz cd ffmpeg-4.41.3 安裝基礎工具鏈 sudo …

前端開發避坑指南:React 代理配置常見問題與解決方案

前端開發避坑指南:React 代理配置常見問題與解決方案 一、為什么需要配置代理?二、使用 create-react-app 默認配置代理三、使用 http-proxy-middleware 配置復雜代理四、高級代理配置五、生產環境中的代理配置一、為什么需要配置代理? React 應用在開發過程中經常需要與后端…

用影刀RPA打通內容創作“最后一公里”:CSDN草稿一鍵同步多平臺發布

文章目錄 引言 一、需求場景:多平臺分發的效率困境1. 痛點分析2. 影刀RPA的破局價值 二、影刀RPA是啥?打工人逆襲神器!三、手把手教你造"搬運工"——技術宅的土味開發日記第一步:當個"偷窺狂"——觀察手動操作…

進程與線程:09 進程同步與信號量

課程引入:進程同步與信號量 接下來這節課開始,我們再開始講多進程圖像。講多進程圖像的下一個點,前面我們講清楚了多進程圖像要想實現切換,調度是如何做的。同時,多個進程放在內存中,就會存在多進程合作的…

【愚公系列】《Manus極簡入門》036-物聯網系統架構師:“萬物互聯師”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

MySQL 8.0 OCP 英文題庫解析(四)

Oracle 為慶祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免費考取原價245美元的MySQL OCP 認證。 從今天開始,將英文題庫免費公布出來,并進行解析,幫助大家在一個月之內輕松通過OCP認證。 本期公布試題26~30 試題26:…

什么是原碼和補碼

補碼的本質確實是模運算(Modular Arithmetic),這是理解補碼為何能統一加減法的核心數學原理。下面用最通俗的語言和例子解釋清楚: —### 1. 先理解什么是“模運算”- 模運算就是“周期性計數”,比如鐘表: -…

筆記項目 day02

一、用戶登錄接口 請求參數: 用loginDTO來封裝請求參數,要加上RequestBody注解 響應參數: 由于data里內容較多,考慮將其封裝到一個LoginUser的實體中,用戶登陸后,需要生成jwtToken并返回給前端。 登錄功…

2025年土木建筑與水利工程國際會議(ICCHE 2025)

2025 International Conference on Civil and Hydraulic Engineering (ICCHE 2025) (一)會議信息 會議簡稱:ICCHE 2025 大會地點:中國銀川 投稿郵箱:icchesub-paper.com 收錄檢索:提交Ei Compendex,CPCI,C…

運行Spark程序-在shell中運行1

(一)分布式計算要處理的問題 【老師提問:分布式計算要面臨什么問題?】 【老師總結】 分布式計算需要做到: 1.分區控制。把大的數據拆成一小份一小份的(分區,分片)讓多臺設備同時計算…

一文理清人工智能,機器學習,深度學習的概念

目錄 一、人工智能的起源與核心范疇(1950-1980) 1.1 智能機器的最初構想 1.2 核心范疇的初步分化 二、機器學習的興起與技術分化(1980-2010) 2.1 統計學習的黃金時代 2.2 神經網絡的復興與子集定位 2.3 技術生態的形成與AI…

《Effective Python》第1章 Pythonic 思維總結——編寫優雅、高效的 Python 代碼

《Effective Python》第1章 Pythonic 思維總結——編寫優雅、高效的 Python 代碼 在編程的世界里,每個語言都有其獨特的風格和最佳實踐。對于 Python 而言,“Pythonic”已經成為描述遵循 Python 特定風格的代碼的代名詞。這種風格不僅讓代碼更易讀、更簡…

MySQL 事務(二)

文章目錄 事務隔離性理論理解隔離性隔離級別 事務隔離級別的設置和查看事務隔離級別讀未提交讀提交(不可重復讀) 事務隔離性理論 理解隔離性 MySQL服務可能會同時被多個客戶端進程(線程)訪問,訪問的方式以事務方式進行一個事務可能由多條SQL…

代碼倉提交分支規范

以下是我部門開發時用的分支規范,參考于Linux社區 Tips 分支命名通常遵循一些最佳實踐和規則,以便使分支的用途和內容清晰易懂,就在寫一個文檔的主題一樣。 功能分支 (Feature Branches) 用于開發新功能。 命名格式:feature/功能名…

Google Earth Engine(GEE) 代碼詳解:批量計算_年 NDVI 并導出(附 Landsat 8 數據處理全流程)

一、代碼整體目標 基于 Landsat 8 衛星數據,批量計算 2013-2020 年研究區的 NDVI(歸一化植被指數),實現去云處理、數據合成、可視化及批量導出為 GeoTIFF 格式,適用于植被動態監測、生態環境評估等場景。 二、代碼分步解析(含核心原理與易錯點) 1. 加載并顯示研究區邊…

Maven 處理依賴沖突

Maven處理依賴沖突 什么是依賴沖突?如何解決?Maven自動處理依賴沖突的規則路徑優先原則第一聲明優先原則注意 子模塊覆蓋父模塊父模塊聲明dependency子模塊覆蓋dependency父模塊聲明dependencyManagement 子模塊覆蓋dependency父模塊聲明dependencyManag…

docker 安裝 sqlserver2022 和注意點

一、前言 1、可以直接參考微軟官方文檔 快速入門:使用 Docker 運行 SQL Server Linux 容器映像,這里主要是說一些注意點和坑 二、安裝 1、拉取鏡像 docker pull mcr.microsoft.com/mssql/server:2022-latest2、創建掛載目錄,這里只是比官方…