要使 Performance Schema 可用,必须在构建时将其配置到 MySQL 服务器中。Oracle Corporation 提供的二进制 MySQL 发行版配置为支持 Performance Schema。如果您使用来自其他供应商的二进制 MySQL 发行版,请与供应商核实该发行版是否已正确配置。
如果您从源代码分发构建 MySQL,请通过运行启用选项的CMake来
启用性能模式WITH_PERFSCHEMA_STORAGE_ENGINE
:
$> cmake . -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
使用该选项配置 MySQL
-DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=1
可防止包含性能模式,因此如果您希望包含它,请不要使用此选项。请参阅
第 2.9.7 节,“MySQL 源配置选项”。
如果您在以前的安装上安装 MySQL,该安装是在没有性能模式的情况下配置的(或者使用具有丢失或过时表的旧版本的性能模式)。此问题的一个迹象是错误日志中存在如下消息:
[ERROR] Native table 'performance_schema'.'events_waits_history'
has the wrong structure
[ERROR] Native table 'performance_schema'.'events_waits_history_long'
has the wrong structure
...
要纠正该问题,请执行 MySQL 升级过程。请参阅 第 2.11 节,“升级 MySQL”。
要验证服务器是否使用性能模式支持构建,请检查其帮助输出。如果 Performance Schema 可用,则输出包括几个名称以 开头的变量performance_schema
:
$> mysqld --verbose --help
...
--performance_schema
Enable the performance schema.
--performance_schema_events_waits_history_long_size=#
Number of rows in events_waits_history_long.
...
您还可以连接到服务器并在以下位置的输出中查找命名PERFORMANCE_SCHEMA
存储引擎的行SHOW ENGINES
:
mysql> SHOW ENGINES\G
...
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
...
如果在构建时未将性能模式配置到服务器中
PERFORMANCE_SCHEMA
,则输出中不会出现任何行SHOW ENGINES
。您可能会performance_schema
在 的输出中看到 listed SHOW DATABASES
,但它不包含任何表格,您无法使用它。
PERFORMANCE_SCHEMA
输出中
的一行SHOW ENGINES
表示性能模式可用,而不是已启用。要启用它,您必须在服务器启动时这样做,如下一节所述。