解决docker启动mysql无法输入中文以及中文不显示或乱码问题

您所在的位置:网站首页 linux纯命令行输入不了中文 解决docker启动mysql无法输入中文以及中文不显示或乱码问题

解决docker启动mysql无法输入中文以及中文不显示或乱码问题

2024-06-13 08:29| 来源: 网络整理| 查看: 265

前言

我在使用MySQL时,遇到了两个问题。一是在插入中文数据时,无法输入中文。二是在select的时候,查出来的中文数据是空的(因为插入时为空),然后我就使用Navicat连接数据库添加了中文数据,再到docker中查询,就发现了乱码问题。 在这里插入图片描述

排查原因

乱码一般都是因为编码引起的,所以我们来查一下数据库的编码

show variables like '%character%';

在这里插入图片描述 可以看到 docker 启动的 mysql 这里有的编码是 latin1,我们先把这里设置成utf8.

解决方式 1 无法输入中文

使用如下命令进入容器,但这只是临时的

docker exec -it mysql env LANG=C.UTF-8 /bin/bash 2.1 统一客户端与连接编码为utf8

登入数据库执行以下命令

set character_set_client = utf8; set character_set_results = utf8; set character_set_connection = utf8; -- 或者使用下面的命令同时统一编码(以下和以上命令选择一种执行即可,效果一样) set names ‘utf8’;

在这里插入图片描述

2 修改mysql的配置文件

退出数据库,修改my.cnf文件 在这里插入图片描述

出现bash: vim: command not found提示,需要安装一下vim,使用如下命令

apt-get update apt-get install vim -y

然后重新执行vim命令即可

修改文件内容

[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL [mysql.server] default-character-set = utf8 [mysqld_safe] default-character-set = utf8 [client] default-character-set = utf8

在这里插入图片描述

重启mysql

# exit退出容器 docker restart mysql

登录mysql查看是否修改成功

docker exec -it mysql /bin/bash mysql -u root -p

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3