ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

docker中的mysql中文乱码解决办法

2022-08-24 01:05:43  阅读:424  来源: 互联网

标签:容器 中文 配置文件 utf8 乱码 mysql docker


  博主最近在做谷粒商城,因为要使用docker安装mysql,但是由于安装的时候没有指定mysql的数据库的utf8格式,导致插入的时候就出现了中文是问号的情况,到处百度终于解决,于是打算记录一下自己的解决办法。

下面是展示一个执行的时候插入的中文是?的图片。

执行的代码如下:

@RunWith(SpringRunner.class)
@SpringBootTest
public class GulimallProductApplicationTests {

    @Resource
    private BrandService brandService;

    @Test
    public void contextLoads() {
        BrandEntity brandEntity = new BrandEntity();
        brandEntity.setName("诺基亚2");
        brandService.save(brandEntity);
        System.out.println("保存成功");
    }

}

  这里可以看到保存中文的值的时候是新增的方法,但是插入就中文显示为?号了。解决办法就是去修改docker里面的mysql的配置文件my.cnf

那么怎么修改呢?

  第一种方法:可以直接去容器里面的mysql里面进行修改,但是这样要安装一个容器里面可以修改文件的vim插件,网速太慢了,我就放弃了,没有使用这种方法。

  第二种方法:修改linux和容器内部映射的配置文件。  

因为开始使用docker安装mysql的时候指定了映射的配置文件的路径,但是时间太长,自己忘记了,于是搜索了一下有一个命令可以直接查看当前容器的映射文件对应在linux上的哪个位置,真的是非常好用的命令

这个命令就是 

docker inspect container_name | grep Mounts -A 20
container_name 是容器的名字,这里我建议直接可以复制容器的id号码,直接替换,例如下图,我是用的mysql的id来进行查询的。

可以看到我这里使用这个命令成功找到了容器映射的文件地址,下一步就是直接去Source后面路径,进行修改mysql的配置文件达到我们需要的效果。

使用vi my.cnf打开文件之后就可以把下面的内容复制进去,然后关闭文件,最后使用docker命令docker reload  xxxx  ==>重启mysql容器

[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

最后查询数据库的当前状态如下:

 

这时候插入的值就是正常的了,如果有不懂的,可以直接问我。

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:容器,中文,配置文件,utf8,乱码,mysql,docker
来源: https://www.cnblogs.com/hg-blogs/p/16618375.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有