一起学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.mzph.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个设计模式,但是大多停留在概念层面,真实开发中很少遇到,…

【数据结构】时间和空间复杂度

马上就要进入到数据结构的学习了 ,我们先来了解一下时间和空间复杂度,这也可以判断我们的算法是否好坏; 如何衡量一个算法的好坏? 就是看它的算法效率 算法效率 算法效率分析分为两种:第一种是时间效率,第…

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…

第一百七十八回 介绍一个三方包组件: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…

视频监控中的智能算法与计算机视觉技术

智能视频监控是一种基于人工智能技术的监控系统,它能够通过对图像和视频数据进行分析,自动识别目标物体、判断其行为以及进行异常检测等功能,从而实现对场景的智能化监管。以下是常见的一些用于智能视频监控的算法: 1、人脸识别技…

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的吞吐量,在数据采集、传输、存储的过程中发挥着作用 二:为什么要使用消息队列 一个普通访问量的接口和一个大并发的接口,它们背后的…

PostgreSQL Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,(…

【技术分享】RK3399 Ubuntu通过Python实现录音和播放功能

​本文基于IDO-SBC3968 Ubuntu 系统通过Python脚本实现录音和播放功能。 IDO-SBC3968采用RK3399国产六核64位CPU高性能处理器,支持4K HDMI2.0显示,接口丰富,拥有千兆以太网,全协议TypeC接口,USB3.0 ,eDP 和…

Redis高并发缓存架构

前言: 针对缓存我们并不陌生,而今天所讲的是使用redis作为缓存工具进行缓存数据。redis缓存是将数据保存在内存中的,而内存的珍贵性是不可否认的。所以在缓存之前,我们需要明确缓存的对象,是否有必要缓存,怎…

2022年03月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 以下四个选项中,运行哪个积木块,可能得到523这个数值? A: B: C: D: 答案:B 四个选项都遵循统一的公式:随机数ⅹ10+3=523,因此可以得出随

和数集团出席中科院上海高研院​第三十三期“高研交叉论坛”信息能源融合专场

2023年11月21日,中国科学院上海高等研究院第三十三期“高研交叉论坛”信息能源融合专场在上海高研院成功举办。本次论坛由中国科学院上海高等研究院智能信息通信技术研究与发展中心、中国科学院低碳转化科学与工程重点实验室、中科院和数智能区块链与能源系统应用联…

【文末送书】机器学习高级实践

2023年初是人工智能爆发的里程碑式的重要阶段,以OpenAI研发的GPT为代表的大模型大行其道,NLP领域的ChatGPT模型火爆一时,引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升,它能够同时接受图像和文本的输入…

仿 美图 / 饿了么,店铺详情页功能

前言 UI有所不同,但功能差不多,商品添加购物车功能 正在写,写完会提交仓库。 效果图一:左右RecyclerView 联动 效果图二:通过点击 向上偏移至最大值 效果图三:通过点击 或 拖动 展开收缩公告 效果图四&…