将MySQL升级到5.7.8-rc之后 并登录到服务器我收到错误:
Table 'performance_schema.session_variables' doesn't exist
我找不到任何解决方案。你能帮忙吗?
答案 0 :(得分:474)
运行命令@robregonm建议后,我能够登录到mysql服务器:
mysql_upgrade -u root -p --force
需要重启MySQL服务器。
答案 1 :(得分:194)
mysql_upgrade也适用于我:
# mysql_upgrade -u root -p --force
# systemctl restart mysqld
此致 MSZ。
答案 2 :(得分:99)
mysql -u app -p
mysql> set @@global.show_compatibility_56=ON;
答案 3 :(得分:12)
由于上述答案中没有一个能够解释所发生的事情,因此我决定加入并为此问题提供更多细节。
是的,解决方案是运行MySQL Upgrade命令,如下所示:mysql_upgrade -u root -p --force
,但是发生了什么?
此问题的根本原因是performance_schema
的损坏,可能由以下原因引起:
即使在修补程序之前,您的数据库上也可能出现此问题,但MySQL 5.7.8上发生的事情是标记show_compatibility_56
默认情况下将其默认值更改为ON
,到OFF
。此标志控制引擎在各种MySQL版本上设置和读取变量(会话和全局)的查询时的行为方式。
因为MySQL 5.7+开始在performance_schema
而不是information_schema
上读取和存储这些变量,所以为第一个版本引入了此标志ON
以减少此爆炸半径改变并让用户了解变化并习惯它。
好的,但为什么连接失败?因为取决于您正在使用的驱动程序(以及它的配置),它可能最终为启动到数据库的每个新连接运行命令(例如,如show variables
)。因为其中一个命令可以尝试访问损坏的performance_schema
,所以整个连接在完全启动之前就会中止。
因此,总而言之,可能(现在无法告诉)在修补之前performance_schema
已丢失或已损坏。 5.7.8的补丁然后强制引擎从performance_schema
(而不是information_schema
读取变量,因为标志被转动ON
,它正在读取它。由于performance_schema
已损坏,因此连接失败。
尽管停机,但运行MySQL升级是最好的方法。打开标志是一个选项,但它带有它自己的一组含义,因为它已经在这个线程中被指出。
两者都应该有效,但要重视后果并知道你的选择:)
答案 4 :(得分:4)
不使用-p
<:p>,请执行以下步骤
mysql_upgrade -u root
systemctl restart mysqld
我遇到了同样的问题而且有效!
答案 5 :(得分:1)
作为sixty4bit问题,如果您的mysql root用户看起来配置错误,请尝试从mysql官方源安装配置器扩展:
https://dev.mysql.com/downloads/repo/apt/
它可以帮助您设置新的root用户密码。
确保更新您的存储库(debian / ubuntu):
apt-get update
答案 6 :(得分:0)
对于我的系统,问题最终是我仍然安装了Mysql 5.6,因此调用了该安装的mysql_upgrade.exe而不是5.7的版本。导航至C:\Program Files\MySQL\MySQL Server 5.7\bin
并运行.\mysql_upgrade.exe -u root
答案 7 :(得分:0)
如果在使用mysql_upgrade -u root -p --force
命令时遇到此错误:
Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13
只需在命令前添加sudo
即可。这对我有用,我解决了我的问题。所以,它是:sudo mysql_upgrade -u root -p --force
:)
答案 8 :(得分:-2)
有时候mysql_upgrade -u root -p --force
还不够,
请参阅此问题:Table 'performance_schema.session_variables' doesn't exist
根据它:
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
mysql_upgrade -u root -p --force