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 # 设 ...
随机推荐
- DevExpress源码编译(部分翻译)
环境准备(DevExpress v18.2 ~22.2): vs2015至2022版本 .net framework 4.7.2或更高(实际我们项目用4.5.2可以编译,并不是所有的工程都需要高版本) ...
- 印尼Widya Robotics携手华为云,让建筑工地安全看得见
摘要:AI落地效率提升30倍,实时智慧安全检测,全天候保障劳工人身安全. 本文分享自华为云社区<云上360行 丨 印尼Widya Robotics携手华为云,让建筑工地安全看得见>,作者: ...
- 华为云PB级数据库GaussDB(for Redis)揭秘第13期:如何搞定推荐系统存储难题
摘要:GaussDB(for Redis)轻松搞定推荐系统核心存储,为企业级应用保驾护航. 本文分享自华为云社区<GaussDB(for Redis)揭秘第13期:如何搞定推荐系统存储难题?&g ...
- 从1天到10分钟的超越,华为云DRS在背后做了这些
摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力. 本文分享自华为云社区<分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见>,作者:GaussDB 数据 ...
- 不会使用Spring的配置文件,赶紧把这个甩给他
摘要:文章从Spring程序的快速使用.Bean标签的使用和其属性的具体使用,每个属性都用代码来解释,运行结果和案例也写的都很明白. 本文分享自华为云社区<怎样使用Spring的配置文件?带大家 ...
- Windows系统快速安装Superset 0.37
Windows系统安装Superset 0.37 Superset 是一款由 Airbnb 开源的"现代化的企业级 BI(商业智能) Web 应用程序",其通过创建和分享 dash ...
- A/B实验背后的秘密:样本量计算
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 一.前言 背景: AB实验具有一定前瞻性,统计性,科学性的特性.用好了就实现了在大数据时代的充分利用数据分析问题, ...
- 数据探索之道:查询Web API数据中的JSON字符串列
前言 在当今数据驱动的时代,对数据进行探索和分析变得愈发关键.Web API作为广泛应用的数据源,提供了丰富的信息和资源.然而,面对包含JSON字符串列的Web API数据时,我们常常遇到一个挑战:如 ...
- #2089: 不要62 (数位dp模板题,附带详细解释)
题目链接 题意:问区间[n,m]中,不含数字4,也不含数字串"62"的所有数的个数. 思路:可以转化成求区间[0,x] 第一次接触数位dp,参考了这几篇博客. 不要62(数位dp) ...
- AtCoder Beginner Contest 204 (AB水题,C题DFS,D题位运算DP,E题BFS好题)
补题链接:Here A - Rock-paper-scissors 石头剪刀布,两方是一样的则输出该值,否则输出该值 int s[4] = {0, 1, 2}; void solve() { int ...