Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑


摘要

本周研发同事反馈现场有一个问题.
客户使用mysql的数据库(Windows平台)
然后在多表union all 创建的视图内执行查询
如果使用中文模拟查询, 就没结果返回. 大部分csdn的搜索结构都是说需要在my.ini里面增加部分默认字符集的配置.
但是反馈并没有解决. 周三下午实在有点被问烦了.
然后跟公司内数据库专家方神一起进行一下验证发现是mysql的一个坑.

csdn要求添加的配置

在mysql中的my.ini 文件中

在[mysql]下面添加: default-character-set=utf8
在[client]下面添加:default-character-set=utf8
在[mysqld]下面添加:character-set-server=utf8 来源:https://blog.csdn.net/m0_37468234/article/details/80247910 结论是: 然并卵

尝试验证

客户那边给的配置文件里面看到版本是 Mysql8.0.32
所以猜测是不是数据库有bug (只要是人写的就有bug)
但是有不太确认, 只能够进行相关的测试验证.
主要的办法就是下载 安装 测试 下载地址: https://dev.mysql.com/downloads/
下载的文件主要有两个:
mysql-8.0.32-winx64.zip
mysql-8.0.33-winx64.zip

Windows 平台快速创建

配置文件:
[mysqld]
datadir=C:\mysql\data
max_allowed_packet = 1G
innodb_log_file_size = 512M
innodb_log_buffer_size = 512M
innodb_file_per_table = 1
innodb_buffer_pool_size=8G
innodb_flush_log_at_trx_commit=0
#innodb_file_format=barracuda
max_connections=2000
lower-case-table-names=1
innodb_strict_mode = 0
character_set_server=utf8
secure_file_priv =
#character_set_results=utf8
default-time-zone='+08:00'
expire_logs_days = 1
transaction-isolation = READ-COMMITTED
default_authentication_plugin=mysql_native_password
#skip-grant-tables
skip-log-bin
[mysql]
prompt="\\u@\\h : \\d \\r:\\m:\\s>"
default-character-set=utf8

初始化以及启动服务

mysqld --defaults-file="c:\mysql\my.ini" --initialize

mysqld --remove  MySQL
mysqld --install MySQL --defaults-file="D:\mysql\my.ini"
net start MySQL 注意默认密码在 c:\mysql\data\computername.err 里面.

SQL验证

使用navicat 连接数据库, 设置默认密码后进行如下处理

创建数据库 可以还是用GUI方式创建, 注意我这边是utf8 的字符集

测试SQL主要如下:
create table jinanxiaolaohu1 (col1 varchar(2000));
create table jinanxiaolaohu2 (col2 varchar(2000)); insert into jinanxiaolaohu1 (col1) values ("济南小老虎中文English123402");
insert into jinanxiaolaohu2 (col2) values ("济南小老虎测试中文English123401");
create view jinanxiaolaohu3 as select col1 from jinanxiaolaohu1 union all select col2 from jinanxiaolaohu2 ; # 这个查询结果 8.0.32 就反馈为空.
select * from jinanxiaolaohu3 where col1 like '济南小老虎%' ;

升级Mysql8.0.33进行再次验证

# 注意如果是生产环境务必要进行一下数据库备份.
# 我这边是测试的 就无所谓了.
关闭服务
net start MySQL
将mysql8.0.33的文件覆盖到 mysql8.0.22 的目录
执行
net start MySQL 同样的执行SQL
select * from jinanxiaolaohu3 where col1 like '济南小老虎%' ;
发现就可以查询出结果来了

产品已有的数据库版本验证

我们这边使用的是Mysql8.0.26 docker版本
也进行了一下验证也没问题.
特意尝试了下之前写blog的Mysql8.0.31也没有这个问题. 客户现场中头彩..
建议升级版本.
能用商业数据库使用商业数据库.

Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑的更多相关文章

  1. EF4.0、4.3创建表达式树状动态查询总结

    ---------------------------------------------快速适用 效果: where name like '%王%' and Age>=35 or Age< ...

  2. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

  3. Linux 6.8 源码安装MySQL8.0

    搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...

  4. Linux安装Mysql8.0.11

    0.  安装环境 1.  下载安装包 方式一:百度网盘下载 链接:https://pan.baidu.com/s/11t_JXUp-SXRaioNDvdltNg 提取码:uzyj 方式二:在线下载 1 ...

  5. mysql8.0.13免安装版的安装配置详解

    一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...

  6. mysql8.0.13免安装版配置

    一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...

  7. win7 / mysql-8.0.11-winx64 安装的测坑步骤

    虚惊一场,主要问题是 Navicat Premium 连接 mysql8  Client does not support authentication . 1.  下载 官网下载压缩包: mysql ...

  8. mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded

    安装mysql8.0后使用navicat创建连接, 然后报如题所示警告.可参考如下解决方案: https://stackoverflow.com/questions/49194719/authenti ...

  9. 远程连接MYSQL8.0服务器问题

    title: 远程连接MYSQL8.0服务器问题 date: 2018-07-07 11:02:26 updated: tags: [MYSQL,坑] description: keywords: c ...

  10. win10安装两个不同版本的mysql(mysql5.7和mysql-8.0.19)

    win10中安装mysql5.7后,安装mysql-8.0.19 在D:\mysql-8.0.19-winx64目录下创建一个my.ini文件 [mysqld] # 设置3307端口 port # 设 ...

随机推荐

  1. Go语言逆向技术:常量字符串

    摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 本文分享自华为云社区<go语言逆向技术之---常量字符串解密>,作者:安全技术猿. Go语言源代码编译成 ...

  2. 协同文档:OT与CRDT实现协同编辑笔记

    讲协同编辑,先回顾下从BBS.邮件,到IM 信息的异步传播 信息的生产和消费异步发生. 典型的场景如论坛,博客,文档库,邮件.我在写这篇文档的时候,你们看不到.你们看的时候,我早已写完.异步场景下,信 ...

  3. ​  appuploader使用教程

    ​ appuploader使用教程 转载:appuploader使用教程 目录 问题解决秘籍 登录失败 don't have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 ...

  4. Solon 拉取 maven 包很慢或拉不了,怎么办?

    注意:如果在 IDEA 设置里指定了 settings.xml,下面两个方案可能会失效.(或者直接拿"腾讯" 的镜像仓库地址,按自己的习惯配置) 1.可以在项目的 pom.xml ...

  5. MySQL java new dat() 后插入数据库的时间不一致

    别用时间字段,做为关联字段,代码里的时间和插到数据库中有误差 MySQL java new dat() 后插入数据库的时间不一致,代码里new 的时间插到数据库中不一致

  6. 创建一个简单的Docker镜像

    1. 创建 Dockerfile 文件.index.html测试页面 [root@localhost docker]# vi Dockerfile FROM nginx:1.17.6 #基于 ngin ...

  7. 简洁好用的python-pip包更新工具

    今天推荐一个github的开源工具 pkgu,支持以表格形式展示当前python环境下的有新版本的package的版本信息,并支持全部或部分更新这些已经过期或者有新版的库. 该工具目前还提供了 cac ...

  8. faker造数据

    faker是一个开源的python库,安装完成后只需要调用Facker库,就可以帮助我们创建需要的数据. pip install Faker demo from faker import Faker ...

  9. 玩转Python:在Python中处理表格数据,几个非常流行且功能强大的库

    在Python中处理表格数据,有几个非常流行且功能强大的库.以下是一些最常用的库及其示例代码: 1. Pandas Pandas是一个开放源代码的.BSD许可的库,为Python编程语言提供高性能.易 ...

  10. EXECL函数

    1 COUNTIF 对比两列数据,有相同的即计为1 找一列空白列,输入=COUNTIF(范围,条件),按回车,然后再点击表格右下角的"+" 就可以拉动持续执行这个函数 2 CONC ...