【Docker+Mysql】docker搭建的mysql8.0中文乱码问题

2023-11-04

环境

  • CentOS 7
  • mysql
  • docker

问题描述

查询数据库时,发现服务器端数据出现中文乱码问题,所有中文显示成问号(??),导致我的接口访问使用从数据库中读取出来的数据无法处理。
在这里插入图片描述

解决过程

使用Docker搭建mysql容器,和不使用Docker部署mysql数据库,解决中文乱码问题有点不一样。使用Docker部署mysql,如果出现中文乱码问题,要找到mysql所在容器里的配置文件,修改配置文件。

CentOS7 安装Docker + Docker部署mysql过程:
https://blog.csdn.net/weixin_42956047/article/details/103810144

进入mysql容器:

 docker exec -it 容器名/bin/bash   //进入容器
 如:
 docker exec -it image_mysql /bin/bash   //进入容器

连接mysql:使用一下命令,输入root用户的密码后,mysql连接成功。

mysql -u root -p

查看当前数据库字符集:

SHOW VARIABLES LIKE 'character_set_%';//查看数据库字符集

在这里插入图片描述

 SHOW VARIABLES LIKE 'collation_%';

在这里插入图片描述
图上的第一个 connection 就是我们通过workbench等客户端连接的时候指定的编码。
外部访问数据乱码的问题就出在这个connection连接层上。

注意: 如果连接mysql后,修改这些变量的值为“utf8”,当重新来连接mysql后,再次查看当前的值,这些值又被重置为上图编码格式了,不能从根本上解决问题。

修改mysql的配置文件

先进去mysql容器。
注意:不输入 mysql -u root -p(即登录数据库)

配置文件在etc/mysql/myconf.d/my.cnf(文件名可能是mysql.cnf)
在这里插入图片描述
编辑配置文件:vi mysql.cnf,在使用docker容器时键入vim命令时提示:
在这里插入图片描述
在容器中安装vim:
在这里插入图片描述
在vim命令可用后,在文件中添加以下代码:

[mysql]
default-character-set = utf8

[mysql.server]
default-character-set = utf8

[mysql_safe]
default-character-set = utf8

[client]
default-character-set = utf8

#在标签下添加以下设置
[mysqld]
default-character-set = utf8
character_set_server = utf8

保存并退出。

连接mysql后,检查mysql字符集编码,看看是否变化:
在这里插入图片描述
在这里插入图片描述
验证数据库里面的中文字段是否还乱码(出现??):
在这里插入图片描述
参考:https://blog.csdn.net/qq_35765928/article/details/87880291

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Docker+Mysql】docker搭建的mysql8.0中文乱码问题 的相关文章

随机推荐

  • stm32实用篇4: stm32数据类型长度

    由于经常会忘记stm32的数据类型长度 测试一下 DEBUG INFO stm32数据类型长度 DEBUG INFO char d byte sizeof char DEBUG INFO short d byte sizeof short
  • 算法:归并排序和快排的区别

    一 二者比较 归并排序和快排的相同点 1 利用分治思想 2 具体实现都用递归 归并排序和快排的不同点 1 先分解再合并 归并排序先递归分解到最小粒度 然后从小粒度开始合并排序 自下而上的合并排序 2 边分解边排序 快速排序每次分解都实现整体
  • Educoder_web实训作业——写在最后

    今天终于把最后一章的web发了出来 这也是我第一次完整的将一个实训作业写成一个专栏推送 其实 这不是我第一次做关卡答案的文章了 上个学期Java实训的时候 由于当时自身也有很多题不是特别清楚 就上网搜了一下 没想到发现网上面已经有人开始再发
  • MFC中OnTimer定时器用法

    一 单个定时器用法 定时器工作主要流程 设置定时器SetTimer 时间到后调用OnTimer函数 关闭定时器KillTimer 可以在程序初始化用SetTimer函数弄成多个线程类似 并行进行多个函数功能 1 1 SetTimer H n
  • Python实现排队论——多坑位仿真(未使用仿真库,纯手写仿真)

    Python实现排队论 多坑位厕所 在一次偶然机会 接触到运筹学的排队论问题 于是简单尝试了一下硬撸代码 纯手打仿真 没有使用仿真库 建议大家可以学习Simpy库 用以仿真 一 案例 主要是基于 蒙特卡罗思想 求解 单坑位 排队等待时间问题
  • 动手做一个简单的智能小车

    动手做一个简单的智能小车 来到CNDN一年了 看到了许多大佬的杰出作品 也该写点什么来回馈给大家了前不久接触了单片机 想提前进行实践一下所以有想法做一个实体出来 想来想去难的怕自己搞不定 但是还好找到了志同道合的王同学 一起搞一个智能小车
  • 数据结构与算法课程笔记(十)

    实验十 图的存储结构与遍历 一 实验目的 二 实验环境 三 实验内容 一 实验目的 掌握图的邻接矩阵表示方法 理解基于邻接矩阵的深度优先 广度优先遍历方法的实现 掌握图的邻接表表示方法 理解基于邻接表的深度优先 广度优先遍历方法的实现 二
  • Java Socket 之 NIO

    对于 TCP 或 UDP 的服务器 如何实现并发处理客户端 最直观的想法就是为每个到来的请求 创建一个单独的线程来处理 但是这种方式未免太浪费资源了 那可以使用线程池来管理线程 这样可以节约资源 以 TCP 服务器举例 首先需要定义一个需要
  • C++ 穷举法

    今天我们来了解一下C 语言中 解决问题的一个较为常用的方法 穷举法 我们先来了解一下它的基本原理 再来做一些题目巩固一下 穷举又叫枚举 就是先确立一个范围 再把这个范围里的数 一个一个的带入题目中尝试 如果符合题目中的所有条件 那么这道题就
  • 读取Linux中I2C数据——c程序

    关于在Linux下读取I2C数据 该程序主要是在树莓派中读取AMG8833传感器中的64个温度数据 借鉴了一些网上的方法 然后参考芯片的数据手册 数据的存储格式 本芯片是2个字节存放一个数据 include
  • 搭建云原生环境

    1 安装准备工作 确保所有被安装服务器时区和时间一致 时间不一致会影响 Elasticsearch 和 Skywalking 等信息无法采集的情况出现 在各个服务器上安装时间同步命令工具 yum install ntp y 使用 ntpda
  • AJAX--XMLHttpRequest的方法

    AJAX XMLHttpRequest XMLHttpRequest是浏览器内置的一个构造函数 作用是 基于new出来的XMLsHttpRequest实例对象 可以发起Ajax的请求 axios中的axios get axios post
  • CSS Grid布局:合并单元格布局

    CSS Grid布局 网格单元格布局 一文中通过一些简单的实例介绍了如何给容器定义网格 并且怎么使用网格线或者网格区域来实现单元格这样的简单的布局 在文章结尾之处也提到过 这样的单元格如同表格一样 仅仅一个个独立的单元格是无法满足一些复杂的
  • 软件测试基础

    软件测试基础 一 软件测试基础理论 1 软件测试的必要性 所有的产品或者服务上线都需要测试 2 测试的发展过程 3 什么是软件测试 找bug 发现缺陷 4 测试的定义 使用人工或自动的手段来运行或者测试某个系统的过程 目的在于检测它是否满足
  • JSON parse error: Cannot deserialize instance of `java.util.ArrayList

    前言 今天测试接口 JSON里面有个集合 一直报错如下所示 name 到底怎么回事呢 status 0 tenantId 123 createId 123 modifyId 123 labelItemRelations itemId 111
  • 为什么Vue中data一定要是一个函数?

    1 什么是函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块 js函数语法 函数就是包裹在花括号中的代码块 前面使用了关键词 function 当调用该函数时 会执行函数内的代码 可以在某事件发生时直接调用函数 比如当用户点击
  • Android--- Layout

    Android Layout Linear Layout Relative Layout Table Layout Grid Layout Frame Layout Constraint Layout Linear Layout
  • 【Java实践】java实现注册表单处理

    import java io IOException import javax servlet ServletException import javax servlet http HttpServlet import javax serv
  • android 仿钉钉日历,仿钉钉左右滑动日历

    先上我的效果图 再说思路 我这里不贴代码 思路 懂了 不管用前端还是移动端 都可以做出来的 做这个左后滑动的日历之前 首先无从下手的 有两个地方 第一 该怎么实现 左右滑动效果 第二 展示的日期是怎么计算的 因为我们是用ionic2 写的项
  • 【Docker+Mysql】docker搭建的mysql8.0中文乱码问题

    环境 CentOS 7 mysql docker 问题描述 查询数据库时 发现服务器端数据出现中文乱码问题 所有中文显示成问号 导致我的接口访问使用从数据库中读取出来的数据无法处理 解决过程 使用Docker搭建mysql容器 和不使用Do