Dans mysqld.log
J'ai des milliers de lignes comme:
Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade
Donc, selon pratiquement tous les articles sur le sujet (et le message d'erreur lui-même):
mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
...
et toutes les tables de toutes les bases de données sont comme
...
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
The sys schema is already up to date (version 1.5.1).
Checking databases.
...
Mais je reçois toujours l'erreur dans le journal
2019-01-27T18:37:15.304587Z 66190 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade
2019-01-27T18:37:15.304620Z 66190 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade
2019-01-27T18:37:15.304684Z 66190 [Warning] InnoDB: Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade
2019-01-27T18:37:15.304707Z 66190 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade
La structure semble correcte. Y a-t-il un problème de configuration? S'il vous plaît donnez votre avis.
La réponse semble être - redémarrer le serveur. Je n'ai pas le droit de le faire, mais après le redémarrage de l'administrateur, le problème semble résolu. Vous ne savez pas pourquoi le redémarrage de MySQL n'a pas été résolu?
Peut-être que ces informations sont utiles.
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-23.html
Remarque
Cette version inclut une modification des tables système innodb_index_stats et innodb_table_stats. Lors de la mise à niveau vers cette version, assurez-vous d'exécuter mysql_upgrade afin d'inclure ces modifications.
Avez-vous une idée de ce qui se passe lorsque l'avertissement est généré? Cela ressemble à une forme de non-concordance de version. Avez-vous des plugins?
Veuillez déposer un bogue sur bugs.mysql.com.
En attendant, faites
USE mysql;
SHOW CREATE TABLE innodb_index_stats ;
Vérifiez notamment la définition de table_name
. C'était autrefois
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
8.0 le change en
`table_name` varchar(199) COLLATE utf8_bin NOT NULL,
S'il est toujours 64, simulez ce que mysql_update
devrait avoir fait, en faisant
ALTER TABLE innodb_index_stats
MODIFY `table_name` varchar(199) COLLATE utf8_bin NOT NULL;
Idem pour innodb_table_stats
.