Docker 安装mysql 解决中文乱码,数据持久化进入本地

目录

一:简单版的(没有持久化,有乱码,直接run 的容器实例)

  1.拉取镜像到本地

  2.安装运行简单版

      2.1.验证使用,建库建表插入数据

      2.2外部Win10也来连接运行在dokcer上的mysql容器实例服务​

 3.出现问题 (插入中文,删除容器后,里面的mysql数据如何办)

 二:实战版 ,解决中文字符,持久化(平时安装使用)

 1.新建mysql容器实例 (搭载容器卷)

2.新建my.cnf

 3.重新启动mysql容器实例再重新进入并查看字符编码

4. 再新建库新建表再插入中文测

 三:结论


一:简单版的(没有持久化,有乱码,直接run 的容器实例)

  1.拉取镜像到本地

          docker pull mysql:5.7

  2.安装运行简单版

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps
docker exec -it 容器ID /bin/bash
mysql -uroot -p 

  1.验证使用,建库建表插入数据

 外部Win10也来连接运行在dokcer上的mysql容器实例服务

 3.出现问题 (插入中文,删除容器后,里面的mysql数据如何办)

  •    docker上默认字符集编码隐患
  •    容器实例一删除,你还有什么?删容器到跑路。。。。。?

 二:实战版 ,解决中文字符,持久化(平时安装使用)

 1.新建mysql容器实例 (搭载容器卷)

docker run -d -p 3306:3306 --privileged=true 
-v /mytest-docker/mysql/log:/var/log/mysql
-v /mytest-docker/mysql/data:/var/lib/mysql           
-v /mytest-docker/mysql/conf:/etc/mysql/conf.d        
 -e MYSQL_ROOT_PASSWORD=wzf001115  --name mysql mysql:5.7

//mytest-docker/mysql/log   本地的目录  /var/log/mysql 容器中的mysql

2.新建my.cnf

  进入配置conf  /mytest-docker/mysql/conf  通过容器卷同步给mysql容器实例   添加内容

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

 3.重新启动mysql容器实例再重新进入并查看字符编码

 

4. 再新建库新建表再插入中文测试

 

 

 三:结论

改字符集操作+重启mysql容器实例 之后的DB  有效,需要新建 
结论:docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据
 
假如将当前容器实例删除,再重新来一次,之前建的db01实例还有吗?

  有;本地的实例化导入


版权声明:本文为qq_52252193原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。