Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑
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创建视图无法使用中文模糊查询的坑的更多相关文章
- EF4.0、4.3创建表达式树状动态查询总结
---------------------------------------------快速适用 效果: where name like '%王%' and Age>=35 or Age< ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
- Linux 6.8 源码安装MySQL8.0
搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...
- Linux安装Mysql8.0.11
0. 安装环境 1. 下载安装包 方式一:百度网盘下载 链接:https://pan.baidu.com/s/11t_JXUp-SXRaioNDvdltNg 提取码:uzyj 方式二:在线下载 1 ...
- mysql8.0.13免安装版的安装配置详解
一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...
- mysql8.0.13免安装版配置
一.下载 下载地址:https://dev.mysql.com/downloads/mysql/ 二.解压到某个目录,例如:D:/mysql/mysql-8.0.13-winx64 三.配置环境变量 ...
- win7 / mysql-8.0.11-winx64 安装的测坑步骤
虚惊一场,主要问题是 Navicat Premium 连接 mysql8 Client does not support authentication . 1. 下载 官网下载压缩包: mysql ...
- mysql8.0 Authentication plugin 'caching_sha2_password' cannot be loaded
安装mysql8.0后使用navicat创建连接, 然后报如题所示警告.可参考如下解决方案: https://stackoverflow.com/questions/49194719/authenti ...
- 远程连接MYSQL8.0服务器问题
title: 远程连接MYSQL8.0服务器问题 date: 2018-07-07 11:02:26 updated: tags: [MYSQL,坑] description: keywords: c ...
- 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 # 设 ...
随机推荐
- Go语言逆向技术:常量字符串
摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的? 本文分享自华为云社区<go语言逆向技术之---常量字符串解密>,作者:安全技术猿. Go语言源代码编译成 ...
- 协同文档:OT与CRDT实现协同编辑笔记
讲协同编辑,先回顾下从BBS.邮件,到IM 信息的异步传播 信息的生产和消费异步发生. 典型的场景如论坛,博客,文档库,邮件.我在写这篇文档的时候,你们看不到.你们看的时候,我早已写完.异步场景下,信 ...
- appuploader使用教程
appuploader使用教程 转载:appuploader使用教程 目录 问题解决秘籍 登录失败 don't have access,提示没权限或同意协议 上传后在app管理中心找不到版本提交 ...
- Solon 拉取 maven 包很慢或拉不了,怎么办?
注意:如果在 IDEA 设置里指定了 settings.xml,下面两个方案可能会失效.(或者直接拿"腾讯" 的镜像仓库地址,按自己的习惯配置) 1.可以在项目的 pom.xml ...
- MySQL java new dat() 后插入数据库的时间不一致
别用时间字段,做为关联字段,代码里的时间和插到数据库中有误差 MySQL java new dat() 后插入数据库的时间不一致,代码里new 的时间插到数据库中不一致
- 创建一个简单的Docker镜像
1. 创建 Dockerfile 文件.index.html测试页面 [root@localhost docker]# vi Dockerfile FROM nginx:1.17.6 #基于 ngin ...
- 简洁好用的python-pip包更新工具
今天推荐一个github的开源工具 pkgu,支持以表格形式展示当前python环境下的有新版本的package的版本信息,并支持全部或部分更新这些已经过期或者有新版的库. 该工具目前还提供了 cac ...
- faker造数据
faker是一个开源的python库,安装完成后只需要调用Facker库,就可以帮助我们创建需要的数据. pip install Faker demo from faker import Faker ...
- 玩转Python:在Python中处理表格数据,几个非常流行且功能强大的库
在Python中处理表格数据,有几个非常流行且功能强大的库.以下是一些最常用的库及其示例代码: 1. Pandas Pandas是一个开放源代码的.BSD许可的库,为Python编程语言提供高性能.易 ...
- EXECL函数
1 COUNTIF 对比两列数据,有相同的即计为1 找一列空白列,输入=COUNTIF(范围,条件),按回车,然后再点击表格右下角的"+" 就可以拉动持续执行这个函数 2 CONC ...