Mysql创建视图中文乱码如何修改docker里的配置

 更新时间:2023年10月24日 10:50:50   作者:wysghmbb  
这篇文章主要介绍了Mysql创建视图中文乱码如何修改docker里的配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

问题现象:

创建的视图查询无数据,查看创建语句得知,where条件里的中文变成了“???”。

在客户端里查询字符编码:

show VARIABLES like '%char%';

就是character_set_server导致的,它配置的竟然不是utf8,因为他默认就是这个latin1!
踩坑记录:
我在客户端写了个这个命令:

set  character_set_server ='utf8';

表面上再次查询编码确实是变成utf8了,实际上根本不起作用,重启mysql服务也不会起作用!
解决办法:
我的这个mysql是用docker启动的,所以先登录服务器,找到容器

docker ps -a

温馨提示(踩坑记录):注意要加-a查询所有的容器,要不然如果容器Exited状态就查不到它了,比如:

进入容器里,修改my.cnf文件

备注:Windows系统里的mysql,其配置文件叫做my.ini;Linux系统里的mysql,其配置文件叫做my.cnf,一般存放在 /etc/my.cnf或者/etc/mysql/my.cnf路径下。

docker exec -it 2654b151f48c /bin/bash

踩坑记录:一定要加上-it ,要不然没法进入容器,继续操作可就是服务器上的文件了(我这样干过,还疑惑为啥重启不生效,(ˉ▽ˉ;)…)

修改my.cnf文件,在[mysqld]下方加上配置:

character_set_server=utf8
init_connect='SET NAMES utf8'

划重点:一定要在[mysqld]下方加,要不然可能不会生效!
原因:配置文件中的启动选项被划分为若干个组,每个组有一个组名,用中括号[]扩起来。
参考文章:mysql配置文件的使用

踩坑记录:
因为容器里没有vim和vi命令,突发奇想使用了echo 命令直接往文件后面追加,也没有注意到没放在[mysqld]组下面,所以重启后配置一直不生效。
使用echo命令的话:

echo "xxx" >> a.txt ——把xxx追加到a.txt文件最后面
echo "xxx" > a.txt ——把xxx覆盖到a.txt文件里

所以最后意识到以后,使用了>才得以纠正。

重启mysql服务

我使用的是docker命令重启的服务,主从服务器分别重启:

再次用客户端查看编码,已经是utf8了,服务上创建的视图也没有出现乱码情况:

到此这篇关于Mysql创建视图中文乱码如何修改docker里的配置的文章就介绍到这了,更多相关Mysql创建视图中文乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySql利用父id递归向下查询子节点的方法实例

    MySql利用父id递归向下查询子节点的方法实例

    项目中遇到一个需求,要求查处菜单节点的所有节点,在网上查了一下,大多数的方法用到了存储过程,由于线上环境不能随便添加存储过程,所以自己写一个,这篇文章主要给大家介绍了关于MySql利用父id递归向下查询子节点的相关资料,需要的朋友可以参考下
    2022-03-03
  • win10 下安装 mysql 5.7.14 详细图文教程

    win10 下安装 mysql 5.7.14 详细图文教程

    本文通过文字和图片相结合的形式给大家介绍了win10 下安装 mysql 5.7.14的教程的,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • mysql 提示INNODB错误的解决方法

    mysql 提示INNODB错误的解决方法

    解决The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it
    2011-09-09
  • MySQL 中 HAVING 子句的深度解析与实战攻略

    MySQL 中 HAVING 子句的深度解析与实战攻略

    本文深入解析MySQL中HAVING子句的使用,HAVING用于分组后过滤,它作用于GROUP BY分组后的结果集,允许我们基于聚合函数的结果进行条件筛选,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • mysql数据库之count()函数和sum()函数用法及区别说明

    mysql数据库之count()函数和sum()函数用法及区别说明

    这篇文章主要介绍了mysql数据库之count()函数和sum()函数用法及区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • MySQL中CRUD操作及常用查询语法举例详解

    MySQL中CRUD操作及常用查询语法举例详解

    SQL是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容,并删除条目等操作,这篇文章主要介绍了MySQL中CRUD操作及常用查询语法的相关资料,需要的朋友可以参考下
    2025-10-10
  • MySQL数据库优化与定期数据处理策略

    MySQL数据库优化与定期数据处理策略

    在当今数据驱动的时代,数据库作为信息存储和管理的核心,扮演着至关重要的角色,本文将探讨如何通过一系列有效的策略来优化 MySQL 数据库的查询效率,并实现定期处理数据的机制,以确保主表中的数据保持在合理范围内,需要的朋友可以参考下
    2025-03-03
  • mysql sql语句隐藏手机号码中间四位的方法

    mysql sql语句隐藏手机号码中间四位的方法

    这篇文章主要为大家详细介绍了mysql sql语句隐藏手机号码中间四位的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • mysql中关于覆盖索引的知识点总结

    mysql中关于覆盖索引的知识点总结

    在本篇文章里小编给大家整理的是一篇关于mysql中关于覆盖索引的知识点总结内容,有需要的朋友们学习参考下。
    2020-08-08
  • MySQL如何修改binlog保存的天数

    MySQL如何修改binlog保存的天数

    本文介绍了如何修改MySQL的binlog保存天数为7天,设置了不会立即清除,需触发特定条件,同时提到purge命令用于清除指定binlog,并举例说明
    2026-04-04

最新评论