mysqld.log
次のような数千行があります。
Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade
したがって、問題に関する事実上すべての投稿(およびエラーメッセージ自体)によると:
mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
...
すべてのデータベースのすべてのテーブルは
...
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.
...
しかし、まだログにエラーが表示されます
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
構造は問題ないようです。構成の問題はありますか?お知らせ下さい。
答えは-サーバーを再起動するようです。これを行う権限はありませんが、管理者が再起動した後、問題は解決したようです。 MySQLを再起動しただけでは解決しないのはなぜですか?
多分この情報は役に立つでしょう。
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-23.html
注意
このリリースには、innodb_index_statsおよびinnodb_table_statsシステムテーブルへの変更が含まれています。このリリースにアップグレードするときは、これらの変更を含めるために、必ずmysql_upgradeを実行してください。
警告が生成されているときに何が起こっているのか手がかりはありますか?何らかのバージョンの不一致のようです。プラグインはありますか?
Bugs.mysql.comでバグを報告してください。
その間、
USE mysql;
SHOW CREATE TABLE innodb_index_stats ;
特に、table_name
の定義を確認してください。それは従来
`table_name` varchar(64) COLLATE utf8_bin NOT NULL,
8.0はそれを
`table_name` varchar(199) COLLATE utf8_bin NOT NULL,
それでも64である場合は、mysql_update
すべきが実行することをシミュレートします。
ALTER TABLE innodb_index_stats
MODIFY `table_name` varchar(199) COLLATE utf8_bin NOT NULL;
innodb_table_stats
の同上。