一起學docker系列之八使用 Docker 安裝配置 MySQL

目錄

  • 前言
  • 步驟 1:拉取 MySQL 鏡像
  • 步驟 2:運行 MySQL 容器
  • 步驟 3:檢查容器狀態
  • 步驟 4:進入 MySQL 容器
  • 步驟 5:配置 MySQL 字符編碼
  • 步驟 6:重啟 MySQL 容器
  • 步驟 7:測試字符編碼
  • 步驟 8:使用外部工具驗證

前言

MySQL 是一款廣泛應用于各種應用程序的流行開源關系型數據庫管理系統。Docker 提供了便捷的容器化方式來安裝和管理 MySQL。本指南將帶您逐步完成使用 Docker 設置 MySQL 的過程,并解決涉及非英文字符編碼的潛在問題,以及各種報錯的解決。

在這里插入圖片描述

在開始之前,請確保您的機器上已安裝 Docker。

步驟 1:拉取 MySQL 鏡像

首先,從 Docker Hub 拉取 MySQL 5.7 鏡像:

docker pull mysql:5.7

該命令從官方 Docker 倉庫獲取 MySQL 5.7 鏡像。

步驟 2:運行 MySQL 容器

使用以下命令運行 MySQL 容器:

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

各參數解釋:

  • -d:以分離模式運行容器。
  • -p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口,以便訪問 MySQL。
  • --name mysql:為容器分配名稱“mysql”,以便更輕松地管理。
  • -e MYSQL_ROOT_PASSWORD=123456:將 MySQL root 用戶密碼設置為“123456”。

步驟 3:檢查容器狀態

使用以下命令驗證 MySQL 容器是否正在運行:

docker ps

此命令將顯示活動容器的列表,包括 MySQL 容器。

步驟 4:進入 MySQL 容器

通過以下命令訪問 MySQL 容器的終端:

docker exec -it mysql /bin/bash

此命令允許您與 MySQL 容器的 shell 進行交互。

步驟 5:配置 MySQL 字符編碼

默認情況下,MySQL 對于非英文字符可能存在字符編碼問題。為解決此問題,為 MySQL 創建一個配置文件。

cd /etc/mysql/conf.d
vim my.cnf

編輯 my.cnf 文件,添加以下配置:

[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

這些配置將字符集設置為 utf8mb4,以正確處理非英文字符。

步驟 6:重啟 MySQL 容器

重新啟動 MySQL 容器以應用新的配置更改:

docker restart mysql

步驟 7:測試字符編碼

在 MySQL 容器內部,登錄到 MySQL shell:

mysql -uroot -p

創建一個數據庫、表并插入包含非英文字符的數據:

create database db01;
use db01;
create table t1(id int, name varchar(20));
insert into t1 values(1, "你好世界");
select * from t1;

這將測試 MySQL 對非英文字符的處理情況。

步驟 8:使用外部工具驗證

使用 Navicat 等外部工具連接到 MySQL,驗證非英文字符的插入情況,確保正確處理并且沒有字符編碼問題。

在這里插入圖片描述

通過按照這些步驟,您可以使用 Docker 設置 MySQL,并解決涉及非英文字符編碼的潛在問題。

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

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

相關文章

防止應用程序截屏(容器式,防止極域電子教室和錄屏軟件錄制)

核心原理、實現目的 1、使用Panel容器將外部窗口嵌入自己寫的程序 2、使用防止截屏的函數來對窗口透明,這可以使本窗口內所有窗口在錄屏軟件上消失 3、解放,抓取,存儲句柄,實現擺脫錄屏(極域監控) 程序…

用 Addon 增強 Node.js 和 Electron 應用的原生能力

前言 Node.js Addon 是 Node.js 中為 JavaScript 環境提供 C/C 交互能力的機制。其形態十分類似 Java 的 JNI,都是通過提供一套 C/C SDK,用于在 C/C 中創建函數方法、進行數據轉換,以便 JavaScript / Java 等語言進行調用。這樣編寫的代碼通常…

Spring - Mybatis-設計模式總結

Mybatis-設計模式總結 1、Builder模式 2、工廠模式 3、單例模式 4、代理模式 5、組合模式 6、模板方法模式 7、適配器模式 8、裝飾者模式 9、迭代器模式 雖然我們都知道有26個設計模式,但是大多停留在概念層面,真實開發中很少遇到,…

【數據結構】時間和空間復雜度

馬上就要進入到數據結構的學習了 ,我們先來了解一下時間和空間復雜度,這也可以判斷我們的算法是否好壞; 如何衡量一個算法的好壞? 就是看它的算法效率 算法效率 算法效率分析分為兩種:第一種是時間效率,第…

C++ Qt QVariant類型使用介紹與代碼演示

作者:令狐掌門 技術交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目錄 一、QVariant基本用法二、自定義類型使用QVariant三、其它用法賦值修改和替換值使用`QVariant::setValue()`設置值復制構造函數和賦值操作比較使用`QVariant::swap()`交換值使…

CVE-2023-22515:Atlassian Confluence權限提升漏洞復現 [附POC]

文章目錄 Atlassian Confluence權限提升(CVE-2023-22515)漏洞復現 [附POC]0x01 前言0x02 漏洞描述0x03 影響版本0x04 漏洞環境0x05 漏洞復現1.訪問漏洞環境2.構造POC3.復現 0x06 修復建議 Atlassian Confluence權限提升(CVE-2023-22515)漏洞復現 [附POC] 0x01 前言 免責聲明&…

vue中下載文件后無法打開的坑

今天在項目開發的時候臨時要添加個導出功能我就寫了一份請求加導出得代碼, 代碼: //導出按鈕放開exportDutySummarizing (dataRangeInfo) {const params {departmentName: dataRangeInfo.name,departmentQode: dataRangeInfo.qode}//拼接所需得urlcons…

UserRole

Qt::UserRole 是 Qt::ItemDataRole 枚舉中的一個成員,用于表示自定義數據角色(Data Role)的起始值。 在 Qt 中,Qt::ItemDataRole 枚舉用于標識項(Item)中不同類型的數據。這些數據角色包括 Qt::DisplayRol…

目標檢測YOLO系列從入門到精通技術詳解100篇-【目標檢測】紅外熱成像

目錄 前言 知識儲備 紅外熱成像儀基礎知識 算法原理 紅外熱成像探測距離 紅外圖像增強

第一百七十八回 介紹一個三方包組件:SlideSwitch

文章目錄 1. 概念介紹2. 使用方法3. 代碼與效果3.1 示例代碼3.2 運行效果 4. 內容總結 我們在上一章回中介紹了"如何創建垂直方向的Switch"相關的內容,本章回中將 介紹SlideSwitch組件.閑話休提,讓我們一起Talk Flutter吧。 1. 概念介紹 我們…

多功能智能燈桿主要功能有哪些?

多功能智能燈桿這個詞相信大家都不陌生,最近幾年多功能智能燈桿行業發展迅速,迅速取代了傳統路燈,那么多功能智能燈桿相比傳統照明路燈好在哪里呢,為什么大家都選擇使用叁仟智慧多功能智能燈桿呢?所謂多功能智能燈桿著…

【libGDX】Mesh紋理貼圖

1 前言 紋理貼圖的本質是將圖片的紋理坐標與模型的頂點坐標建立一一映射關系。紋理坐標的 x、y 軸正方向分別朝右和朝下,如下。 2 紋理貼圖 本節將使用 Mesh、ShaderProgram、Shader 實現紋理貼圖,OpenGL ES 的實現見博客 → 紋理貼圖。 DesktopLauncher…

超級應用平臺(HAP)起航

各位明道云用戶和伙伴, 今天,我們正式發布明道云10.0版本。從這個版本開始,我們將產品名稱正式命名為超級應用平臺(Hyper Application Platform, 簡稱HAP)。我們用“超級”二字表達產品在綜合能力方面的突破&#xff…

清華系下一代 LCM

LCM LoRA模型是一種創新的深度學習模型,它通過特殊的技術手段,顯著提高了圖像生成的效率。這種模型特別適用于需要快速生成高質量圖像的場景,如藝術創作、實時圖像處理等。 GitHub - luosiallen/latent-consistency-model: Latent Consistenc…

視頻監控中的智能算法與計算機視覺技術

智能視頻監控是一種基于人工智能技術的監控系統,它能夠通過對圖像和視頻數據進行分析,自動識別目標物體、判斷其行為以及進行異常檢測等功能,從而實現對場景的智能化監管。以下是常見的一些用于智能視頻監控的算法: 1、人臉識別技…

RabbitMQ簡易安裝

一般來說安裝 RabbitMQ 之前要安裝 Erlang ,可以去Erlang官網下載。接著去RabbitMQ官網下載安裝包,之后解壓縮即可。 Erlang官方下載地址:Downloads - Erlang/OTP RabbitMQ官方下載地址:Downloading and Installing RabbitMQ —…

org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder

密碼,加密,解密 spring-security-crypto-5.7.3.jar /** Copyright 2002-2011 the original author or authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with t…

Kafka(一)

一:簡介 解決高吞吐量項目的需求 是一款為大數據而生的消息中間件,具有百億級tps的吞吐量,在數據采集、傳輸、存儲的過程中發揮著作用 二:為什么要使用消息隊列 一個普通訪問量的接口和一個大并發的接口,它們背后的…

C/C++---------------LeetCode第1512. 好數對的數目

好數對的數目 題目及要求暴力算法哈希算法在main內使用 題目及要求 給你一個整數數組 nums 。 如果一組數字 (i,j) 滿足 nums[i] nums[j] 且 i < j &#xff0c;就可以認為這是一組 好數對 。 返回好數對的數目。 示例 1&#xff1a; 輸入&#xff1a;nums [1,2,3,1,…

376.擺動序列

原題鏈接&#xff1a;376.擺動序列 全代碼&#xff1a; class Solution { public:int wiggleMaxLength(vector<int>& nums) {if (nums.size() < 1) return nums.size();int curDiff 0; // 當前一對差值int preDiff 0; // 前一對差值int result 1; // 記錄峰…