Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Percona服务器奇怪的bug_Mysql_Stored Procedures_Percona - Fatal编程技术网

Mysql Percona服务器奇怪的bug

Mysql Percona服务器奇怪的bug,mysql,stored-procedures,percona,Mysql,Stored Procedures,Percona,我使用Percona、MySQL(来自Oracle)和Aurora(来自AWS)在AWS上运行SaaS系统。我们严重依赖于存储过程和存储函数,前端是使用MySQL.NET连接器连接的.NET应用程序。所有环境在数据库、存储过程等方面都是相同的,但承载不同的客户机数据(我基本上是按客户机空间进行切分) 该系统已有几年历史,但仍在不断积极开发中 最近升级到Percona后,我们开始收到随机错误,仅来自Percona服务器,存储函数不存在。函数确实存在,错误会自行消失。它们在一天中随机出现。这些问题不

我使用Percona、MySQL(来自Oracle)和Aurora(来自AWS)在AWS上运行SaaS系统。我们严重依赖于存储过程和存储函数,前端是使用MySQL.NET连接器连接的.NET应用程序。所有环境在数据库、存储过程等方面都是相同的,但承载不同的客户机数据(我基本上是按客户机空间进行切分)

该系统已有几年历史,但仍在不断积极开发中

最近升级到Percona后,我们开始收到随机错误,仅来自Percona服务器,存储函数不存在。函数确实存在,错误会自行消失。它们在一天中随机出现。这些问题不会发生在配置相同、结构相同、代码相同的MySQL或Aurora服务器上

为了解决这个问题,我升级到percona服务器5.6.27。问题并没有消失,但升级之后,我们就开始遇到字符集问题,代码包含一个长整数集,并通过存储函数调用返回一个mediumtext。如果我们对返回的结果运行find_in_集,它将因UTF8字符集错误而失效

e、 g.在存储过程中,失败的代码如下所示:

declare list mediumtext;
set list:=fn_getMyBigText();
if find_in_set(123,list) then
  select 'worked';
end if;
Incorrect string value: '\xF2\x00\x00\x00\x00\x00...' for column 'list' at row 1
错误如下所示:

declare list mediumtext;
set list:=fn_getMyBigText();
if find_in_set(123,list) then
  select 'worked';
end if;
Incorrect string value: '\xF2\x00\x00\x00\x00\x00...' for column 'list' at row 1
您可以对变量进行选择,并在Workbench或命令行中查看它,它显示它具有正确的数据,只有在find_in_set()中使用它时才会失败

所有字符集变量都设置为utf8,所有排序规则都设置为uf8\u general\u ci。代码库没有改变。i、 e.它在升级前立即工作,升级后立即失败。在Aurora和MySQL上运行相同的代码效果很好。所有数据库、表和列都设置为utf8,没有其他字符集

我尝试将代码转换为使用mediumblob而不是mediumtext,因为blob没有字符集的概念,错误仍然存在。这就好像代码内部正在隐式转换为拉丁文1

除了关掉percona,还有什么我遗漏的吗?我错过的一些场景


谢谢。

乍一看,fn_getMyBigText()函数的返回值似乎有问题。你能分享这个函数的定义吗?另外,您在基本的Oracle 5.6.27中没有看到这种行为?谢谢@DavidH.Bennett,我们最终切换到Oracle版本的MySQL 5.6社区版,解决了这个问题。函数定义如下所示:CREATE function
fn\u getMyBigText
(\u viewcustomerId int、\u userId int、\u employeeId bigint)返回mediumtext。。。