Docker安装MySQL以及中文乱码问题

问题描述

  Docker安装MySQL,没有什么问题,基本操作,导入sql文件,也没有什么问题。使用sql语句查询,没有什么问题。然后,启动我的springboot项目,查询出来就是中文乱码。解决办法,修改mysql编码格式,使用utf8,再删除自己创建的database,重新建一个。

解决过程

  下载mysql镜像,应该没有什么问题,如图所示,我下载的是5.7.29版本的mysql
在这里插入图片描述
然后如下命令,启动一个mysql容器:

docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7.29

如此我们就创建了一个名字叫做mysql-test的容器,。关于命令,在菜鸟教程里有命令大全,解释很详细。
执行docker ps命令,我们会看到,自己创建的mysql容器
执行如下命令,进入我们的mysql容器当中:

docker exec -it mysql-test /bin/bash

这里使用名字或者ID都可以进入容器里。如图所示:
在这里插入图片描述
使用ls命令,会发现,这有很多文件夹,跟我们的linux根目录似的,但是,它只是在docker的一个容器里,并不是我们的本机。在这里直接使用我们的mysql命令就可以进入mysql。
Docker安装MySQL以及中文乱码问题_第1张图片
如此是不是就很熟悉了。查看数据库编码方式,发现全都是默认的latin1。为了避免出现中文乱码,我们就把它改为utf8。
  改编码我也是查看了很多博客,有的博客对于改配置文件的方式,路径都说的不对,我也是瞎搞一通,连容器都启动不起来了。还好经过我的不断尝试,给改好了。set names utf8命令就不说了,基本上所有的博客都有这个步骤。我们执行完这个命令之后,就退出mysql,改它的配置文件。
  在容器里进入 /etc/mysql/mysql.conf.d目录中,这里有一个mysql.cnf文件,修改它就完事。
Docker安装MySQL以及中文乱码问题_第2张图片
如上图所示,我们第一次使用vim会提示没有这个命令,因为这是一个与外界无关的,独立的容器,所以我们需要安装这个vim。用下边这两条命令:

$ apt-get update
$ apt-get install vim

更新一下软件源,然后下载vim。
这个可能要等上一会,下载完成,我们就编辑这个mysqld.cnf文件。文件长这个样子:
Docker安装MySQL以及中文乱码问题_第3张图片
接下来我们就写入几行代码

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

[mysqld]
character_set_server = utf8

如图所示,修改完,文件长这个样子:
Docker安装MySQL以及中文乱码问题_第4张图片
这样我们就修改完成了。只需要重启容器就可以了。Ctrl+d退出容器,来到我们的本机,执行docker restart mysql-test命令,就可以重启我们的容器,再进入容器就可以看到我们的编码全部改为utf8了。
Docker安装MySQL以及中文乱码问题_第5张图片
这样一来,我们再创建数据库,操作数据库,基本上就不会出现中文乱码了。

你可能感兴趣的:(docker,docker,mysql,乱码,数据库)