Description:
The issue is that trx_query is not expected to contain only valid utf8 characters. It might be legitimate binary data for a query.
This leads to unnecessary warnings, even when we are NOT querying trx_query:
mysql> \W
Show warnings enabled.
mysql> select trx_id from information_schema.innodb_trx;
+---------+
| trx_id |
+---------+
| 8206952 |
| 8206951 |
| 8206950 |
| 8206949 |
| 8206948 |
| 8206947 |
| 8206946 |
| 8206945 |
| 8206944 |
+---------+
9 rows in set, 1 warning (0.00 sec)
Warning (Code 1366): Incorrect string value: '\xC1D\xFF\x12\xD3\x1A...' for column 'trx_query' at row 1
mysql> select version();
+---------------------------------------+
| version() |
+---------------------------------------+
| 5.6.26-enterprise-commercial-advanced |
+---------------------------------------+
1 row in set (0.00 sec)
How to repeat:
run any workload that contains non-utf8 characters in the query. In another thread:
select trx_id from information_schema.innodb_trx;
show warnings;
Suggested fix:
Previous fix for https://bugs.mysql.com/bug.php?id=55397 does not seem complete.
I think trx_query should be BLOB or VARBINARY data type.