一起学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.hqwc.cn/news/218305.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Python在3dMax控制网格对象?

我们以一个在3dMax中使用Python脚本在网格对象对象上创建水波变形作为例子。 首先,在3dmax创建两个对象,一个“box”对象,将长宽方向的分段设置的多一些(目的是为了后面的水波变形),一个“点”帮助对象&am…

王者农药小游戏

游戏运行如下: sxt Background package sxt;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\24465\\D…

辅助驾驶功能开发-系统方案篇-地平线超级驾驶解决方案介绍

01.产品方案 Horizon Matrix SuperDrive超级驾驶解决方案,助力汽车智能化步入人机共驾时代 SuperDrive超级驾驶解决方案,全面整合了自动驾驶、智能交互、云端大脑三大模块,形成完整的泛车载AI人工智能系统,帮助整车智能化提升到一个新的高度。该方案的核心硬件-车载中央计…

链表?细!详细知识点总结!

链表 定义:链表是一种递归的数据结构,它或者为空(null),或者是指向一个结点(node)的引用,该结点含有一个泛型的元素和一个指向另一条链表的引用。 ​ 其实链表就是有序的列表,它在内…

YOLOv8改进 | 2023 | FocusedLinearAttention实现有效涨点

论文地址:官方论文地址 代码地址:官方代码地址 一、本文介绍 本文给大家带来的改进机制是Focused Linear Attention(聚焦线性注意力)是一种用于视觉Transformer模型的注意力机制(但是其也可以用在我们的YOLO系列当中从而提高检测…

虹科Pico汽车示波器 | 汽车免拆检修 | 2011款瑞麒M1车发动机起动困难、加速无力

一、故障现象 一辆2011款瑞麒M1车,搭载SQR317F发动机,累计行驶里程约为10.4万km。该车因发动机起动困难、抖动、动力不足、热机易熄火等故障进厂维修。用故障检测仪检测,发动机控制单元(ECU)中存储有故障代码“P0340相…

不同视频格式如何一键生成二维码?二维码视频制作在线技巧

现在通过扫码看视频是很多人在使用的一种方式,通过制作视频二维码来引导用户了解自己的内容,但是视频有很多种不同的格式,那么有什么方法能够将不同格式的视频生成二维码呢?下面来教大家一招,通过在线的视频二维码生成…

Windows Server 2012R2 修复CVE-2016-2183(SSL/TLS)漏洞的办法

一、漏洞说明 Windows server 2012R2远程桌面服务SSL加密默认是开启的,且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷,当开启远程桌面服务,使用漏洞扫描工具扫描,发现存在SSL/TSL漏洞。远程主机支持的SSL加密算法提供了中等强度的加密算法,目前,使用密钥长度大于等于5…

2.Linux系统及常用命令

目录 一、Linux文件系统和目录 1.1 Linux文件系统 1.2Linux主要目录 二、Linux远程连接 2.1前置条件 2.2 具体远程操作 三、Linux的常用命令 3.1 Linux命令的格式 3.2 Linux命令的帮助信息查看 3.3 Linux文件操作常用命令 命令中快捷键 以管理员权限执行命令 3.3.1…

重生之我是一名程序员 41 ——字符串函数(2)

哈喽啊大家晚上好!今天呢我们延续昨天的内容,给大家带来第二个字符串函数——strcat函数。 首先呢,还是先带大家认识一下它。strcat函数是C语言中用于将两个字符串连接起来的函数,其函数原型为: char *strcat(char *…

Ubuntu 安装 JMeter:轻松上手

Apache JMeter 是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。 安装 Java(已安装 Java 的此步骤可跳过) 要下载 Java,请遵…

Kotlin学习——kt中的类,数据类 枚举类 密封类,以及对象

Kotlin 是一门现代但已成熟的编程语言,旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作,并提供了多种方式在多个平台间复用代码,以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…