MySQL 未知原因造成停止服务,查看日志时,发现:
[Warning] Optional native table 'performance_schema'.'processlist' has the wrong structure or is missing.
进入远程,输入命令:
/www/server/mysql/bin/mysql_upgrade -uroot -p
之后,输入 root 密码并回车。而后你会看到类似以下输出:
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.2).
及重新启动 MySQL:
systemctl restart mysql
mysql_upgrade 的主要作用是帮助 MySQL 数据库在升级到新版本后,确保所有的数据库表都与当前运行的 MySQL 服务器版本兼容。这个命令会对所有数据库中的表进行检查,以确定它们是否与新版本兼容。如果发现有不兼容的表,mysql_upgrade 会尝试修复这些表,并执行必要的升级步骤。
具体来说,mysql_upgrade的作用包括以下几个方面:
检查兼容性:mysql_upgrade命令可以检测数据库中哪些表可能需要升级或修复,以确保它们能够与新版本的MySQL服务器正常工作。
升级系统表:除了检查用户数据表外,该工具还会升级MySQL的系统表。系统表存储了数据库的元数据,包括用户权限、存储过程、触发器等。升级系统表可以让用户利用新版本可能带来的新特性或改进。
添加索引和修改结构:在某些情况下,升级过程可能包括为表添加新的索引或修改表的结构,以提高性能或兼容性。
备份建议:在运行 mysql_upgrade 之前,推荐先备份数据库,以防万一升级过程中出现问题。