表“mysql.host”不存在

表“mysql.host”不存在
100913 10:21:29 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/local/mysql/libexec/mysqld: Table 'mysql.plugin' doesn't exist
100913 10:21:29 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100913 10:21:29 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
100913 10:21:29 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

这是我尝试使用该命令启动 mysqld 时获得的 mysqld 日志文件的输出mysqld_safe。我尝试运行mysql_upgrade以更正第一个错误,但该命令似乎要求启动服务器,这是我最初的问题。

接下来,它说该表mysql.host不存在。我无法弄清楚这是由什么原因造成的。

答案1

您最近升级过 MySQL 吗?理想情况下,您将有一个可以导入的 SQL 转储(根据我的经验,mysql_upgrade 从来都不是很可靠)。另外,该表是 innodb 吗?如果是,请检查您是否没有将 my.cnf 配置为跳过 innodb。如果所有其他方法都失败,请备份、重新安装、启动 MySQL,然后在加载时将文件拉回到 /var/lib/mysql 并尝试修复。

相关内容