MySQL 8.0 cambió la implementación de algunas vistas en INFORMATION_SCHEMA:
https://mysqlserverteam.com/mysql-8-0-improvements- a-info_esquema/ dice:
Entonces, se está haciendo por buenas razones, pero entiendo que ha alterado algunas de sus consultas cuando obtiene resultados en matrices asociativas basadas en el nombre de la columna.
Puede ver que la definición de la vista declara el nombre de la columna explícitamente en mayúsculas:
mysql 8.0.14> SHOW CREATE VIEW CHARACTER_SETS\G
*************************** 1. row ***************************
View: CHARACTER_SETS
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`mysql.infoschema`@`localhost` SQL SECURITY DEFINER VIEW `CHARACTER_SETS` AS
select
`cs`.`name` AS `CHARACTER_SET_NAME`,
`col`.`name` AS `DEFAULT_COLLATE_NAME`,
`cs`.`comment` AS `DESCRIPTION`,
`cs`.`mb_max_length` AS `MAXLEN` -- delimited column explicitly uppercase
from (`mysql`.`character_sets` `cs`
join `mysql`.`collations` `col` on((`cs`.`default_collation_id` = `col`.`id`)))
character_set_client: utf8
collation_connection: utf8_general_ci
Puede solucionar el cambio de varias formas:
Puede declarar sus propios alias de columna en el caso que desee cuando consulta una vista:
mysql 8.0.14> SELECT MAXLEN AS `maxlen`
FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| maxlen |
+--------+
| 2 |
| 1 |
+--------+
Antes de la versión 8.0, podría adquirir el hábito de consultar las columnas en mayúsculas. Aquí hay una prueba que muestra los resultados en mi sandbox 5.7:
mysql 5.7.24> SELECT MAXLEN
FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| MAXLEN |
+--------+
| 2 |
| 1 |
+--------+
O podría obtener los resultados en una matriz no asociativa y hacer referencia a las columnas por número de columna, en lugar de por nombre.