第一个方法:

1、  编辑MySql的配置文件

MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf

--在 [mysqld] 标签下加上以下内容:

default-character-set = utf8

character_set_server = utf8

注意:如果此标签下已经存在“default-character-set=GBK”类似的内容,只需修改即可。

--在 [mysql]  标签下加上一行

default-character-set = utf8

--在 [mysql.server]标签下加上一行

default-character-set = utf8

--在 [mysqld_safe]标签下加上一行

default-character-set = utf8

--在 [client]标签下加上一行

default-character-set = utf8

2、  重新启动MySql服务

Windows可在服务管理器中操作,也可使用命令行:

net stop mysql 回车

net start mysql 回车

服务名可能不一定为mysql,请按自己的设置

Linux下面可是用 service mysql restart

第二个方法:

设置外部访问的编码

set names "utf8";

然后查看表中的中文是否改变,好像只是暂时改变的。

第三个方法:

手把手教你如何在mysql 中使用中文编码

1.首先在docker中拉取好一个最新的mysql镜像以后,创建一个容器:

docker run  -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx--name MYDB mysql

  

参数的解释:

  • -d 设置detach为true
  • -p port 映射端口 13306
  • -e environment 设置密码 xxxxx

2. docker ps 查看mysql容器是否启动,进去容器

docker exec -ti xxx(容器id) /bin/bash

理论上应该启动正常 进去容器内部

3.查看mysql密码 是否正常

mysql -u root -p

在提示下输入密码 xxxxx 正常情况下,应该出现以下提示符mysql>

!!重点来了!!

1.前期工作 查看当前mysql字符集情况

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

基本上都如下图所示:默认就是瑞典latin1

SHOW VARIABLES LIKE 'collation_%';

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

1.先解决外部访问数据乱码的问题

SET NAMES 'utf8';

它相当于下面的三句指令:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

2.创建数据库,创建表的时候,包括设置字段的时候也要加上字符集设置:

例如

create database MYDB character set utf8;

use JSPDB;
create table t_product(
pid varchar(20),
pname varchar(20),
price double,
address varchar(30)
) DEFAULT CHARSET=utf8;

3.如果你应经有建立了数据库,也可以通过以下语句修改字符集

当然 如果是刚刚建容器的时候 我想你肯定是没有数据库的,所有此步跳过

alter database name character set utf8;#修改数据库成utf8的.
alter table type character set utf8;#修改表用utf8.
alter table type modify type_name varchar(50) CHARACTER SET utf8;#修改字段用utf8

4.这一步是很重要的来修改配置文件

mysql容器的配置文件在哪呢? 
我们进去容器。不输入mysql -u root -p(即登录数据库) 
配置文件在etc/mysql/mysql.conf.d/mysql.cnf这个文件里头

我们找到这个文件 编辑他vi mysql.cnf,在使用docker容器时键入vim命令时提示: 
vim: command not found 
这个时候就需要安装vim 
这时候需要敲:

apt-get update

等更新完毕以后再敲命令:

apt-get install vim

然后你发现vim 编辑器可以使用以后,在此文件中添加如下字段 
在 [mysqld] 标签下加上三行

default-character-set = utf8
character_set_server = utf8

在 [mysql] 标签下加上一行

default-character-set = utf8

在 [mysql.server]标签下加上一行

default-character-set = utf8

在 [mysqld_safe]标签下加上一行

default-character-set = utf8

在 [client]标签下加上一行

default-character-set = utf8

修改结果如下:

那么如何检验成功了呢?

还记得我们怎么检查mysql字符集编码的吗 ?

SHOW VARIABLES LIKE 'character_set_%';

我们发现有很多都变成utf8了

SHOW VARIABLES LIKE 'collation_%';

以上基本的工作都做完了。

怎么在docker容器的mysql的编码格式变为utf8的更多相关文章

  1. Docker容器中MySQL最大连接数被限制为214的解决方案

    原文:Docker容器中MySQL最大连接数被限制为214的解决方案 一.背景 话说笔者在上次的博客里简单的讲了一下调整MySQL最大连接数的方法.在文章的最后笔者提到了还有一些特殊情况比如说Dock ...

  2. Docker容器启动Mysql,Docker实现Mysql主从,读写分离

    Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...

  3. Docker容器内Mysql大小写敏感方案解决

    Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...

  4. docker 容器的mysql主从复制

    一. 1.首先拉取docker镜像,我们这里使用5.7版本的mysql:   docker pull mysql:5.7 2.分别启动主从两个容器: docker run -p 3339:3306 - ...

  5. docker容器下mysql更改WordPress的site address和home(URL)------局域网

    先简单介绍下,用docker安装的WordPress,mysql是在docker容器中的,并未在Ubuntu(我把WordPress是安装Ubuntu系统上),即WordPress和Ubuntu是独立 ...

  6. 使用docker容器运行MySQL数据库并持久化数据文件

    1.下载mysql镜像 # docker pull mysql 2.启动mysql容器 # docker run -itd -v /data:/var/lib/mysql -p 33060:3306 ...

  7. Docker容器部署Mysql数据库服务器

    本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...

  8. Xshell终端连接CentOS7.0下Docker容器中的MySql镜像后无法键入中文问题

    首先在宿主机输入env 查看LANG 或者 locale 查看 LANG 发现本地使用的字符集是: zh_CN.UTF-8 然后执行 docker exec -it mysql bash 进入dock ...

  9. 在docker中安装mysql

    #!/bin/sh # 安装docker # 在docker中安装mysql # 解决了docker容器中无法输入中文的问题 ##########################安装docker # ...

随机推荐

  1. Oracle学习第二篇—单行函数

    1字符函数 length  字符长度 lengthb 字节长度 lower 变为小写 upper 变为大写 initcap 首字母大写 select Lower('xun Ying') 小写,Uppe ...

  2. 【Android】第三方库使用的问题集

    Google/百度地图Key的获取 百度地图UnsatisfiedLinkError错误 async-http-client中的FATAL EXCEPTION Google/百度地图Key的获取 无论 ...

  3. [python学习] 简单爬取图片站点图库中图片

    近期老师让学习Python与维基百科相关的知识,无聊之中用Python简单做了个爬取"游讯网图库"中的图片,由于每次点击下一张感觉很浪费时间又繁琐.主要分享的是怎样爬取HTML的知 ...

  4. python 基础 1.3 使用pycharm给python传递参数及pycharm调试模式

    一.通过pycharm 给python传递函数 1. 在pycharm终端中写入要获取的参数,进行获取 1>启动pycharm 中Terminal(终端) 窗口 点击pycharm左下角的图标, ...

  5. WCP人员管理之添加人员

    1.用户管理页面 其中 : var url_formActionUser = "user/form.do";//增加.修改.查看URL 2. 通过 /form 路由, 转到 Use ...

  6. 推荐20个非常有帮助的web前端开发教程

    1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加高速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局.通 ...

  7. Windows 安装nginx

    http://nginx.org/en/docs/windows.html 在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx    start nginx : 启动ngin ...

  8. Gemini.Workflow 双子工作流入门教程二:定义流程:流程节点介绍

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程节点属性. 流程节点: 左侧是节点工 ...

  9. perl之创建临时文件夹遇到同名文件该咋办

    当你在目录下进行一系列操作时,若要创建许多文件或者修改文件,可能会遇到许多麻烦的事.所以呢,新建一个文件夹,然后在这个文件夹下新建文件或者修改文件.假设,你的代码要在一个目录下新建一个文件夹,名为Tm ...

  10. Data Structure Binary Search Tree: Inorder Successor in Binary Search Tree

    struct node { int val; node *left; node *right; node *parent; node() : val(), left(NULL), right(NULL ...