Bug #90984 Source character set not supported by client error on SHOW TABLES command
Submitted: 23 May 2018 8:58 Modified: 3 Jul 2018 23:39
Reporter: Mor Sagmon Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / ODBC Severity:S2 (Serious)
Version:MySQL 8.0.11 OS:Windows (Win 10 64bit)
Assigned to: CPU Architecture:x86
Tags: charset, ODBC

[23 May 2018 8:58] Mor Sagmon
Description:
I'm connecting to MySQL Server 8.0.11 using Excel VBA using ODBC 5.3 driver.
I can execute most statements and queries without a problem (including DDL statements and LOAD FILE LOCAL).

One statement, SHOW TABLES FROM <schema> LIKE '<table_name>' is causing an error:

Microsoft Visual Basic

Run-time error '-2147467259 (80004005)':

[MySQL][ODBC 5.3(w) Driver][mysqld-8.0.11]Source character set not supported by client

This is persistent with ODBC 5.3.4 through 5.3.11 driver (32 bit).

How to repeat:
my.ini has:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

The schema and table columns are all created with utf8 correctly.
Running on Windows10 64bit hosting both Excel (Office 2016) and MySQL.

Connection string (ADODB):

Driver={MySQL ODBC 5.3 Unicode Driver};Server=localhost;Port=3306;Database=xxx;Uid=xxx;Pwd=xxx;charset=UTF8;OPTION=16427;

connection user has privileges on all schemas, no limitations, with all global privileges granted, except: CREATE TABLESPACE, CREATE USER, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER
[23 May 2018 9:32] Mor Sagmon
This (equivalent) statement also produces the same error:

SELECT * FROM information_schema.tables WHERE table_schema = 'xxxx' AND table_name = 'xxxx' LIMIT 1;
[1 Jun 2018 8:10] Chiranjeevi Battula
Hello Mor Sagmon,

Thank you for the bug report.
I could not repeat the issue at our end using Connector / ODBC 5.3.10 & 8.0.11, MySQL 8.0.11  with Windows 10 and it worked without any issues.
Could you please provide repeatable test case (exact steps, screenshot etc. - please make it as private if you prefer) to confirm this issue at our end?

Thanks,
Chiranjeevi.
[1 Jun 2018 10:38] Mor Sagmon
THanks.

I believe I provided all possible instructions as I can.
Please see Bogdan's reply here:
https://forums.mysql.com/read.php?37,666464,666568#msg-666568

Here his reply text: 
"This is the problem with partial incompatibility between Connector/ODBC 5.3 and MySQL Server 8.0. The Connector/ODBC 5.3 uses the older version of MySQL Client library 5.7. 

It can be resolved by using Connector/ODBC 8.0. Unfortunately, there is no 32-bit ODBC Driver version 8.0 for Windows. We are working on resolving this problem."

I believe this may be the reason for this problem I have:
https://forums.mysql.com/read.php?37,666561,666561#msg-666561

Any estimation when will a fix be issued for this incompatibility?
[1 Jun 2018 11:35] Chiranjeevi Battula
Hello Mor Sagmon,

Thank you for your feedback.
Verified based on internal discussion with dev's.

Thanks,
Chiranjeevi.
[27 Jun 2018 7:18] Bogdan Degtyariov
Posted by developer:
 
This bug happened because of utf8mb4_xxxxxx collations reported by MySQL Server 8.0 with the numbers greater than 250 that are unknown to libmysqlclient 5.7.
Also, another collation utf8_tolower_ci (76) was added to Server 8.0.

Because the collations affect the sorting, but not the data conversion they can be substituted with known collations such as utf8mb4_general_ci (45).
[3 Jul 2018 23:39] Philip Olson
Posted by developer:
 
Fixed as of the upcoming MySQL Connector/ODBC 5.3.11 release, and here's the proposed changelog entry:

Connections to MySQL Server 8.0 could yield "Source character set not
supported by client" errors during sorting and case-sensitive operations.
Now known UTF8MB4 collations are used for these operations, such as
utf8mb4_general_ci (known to libmysqlclient 5.7) instead of
utf8mb4_tolower_ci.

Thank you for the bug report.