You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL从8.0.35升级至8.0.36后无法启动,提示sys/sys_config表空间缺失

MySQL从8.0.35升级至8.0.36后无法启动,提示sys/sys_config表空间缺失

遇到这种情况别慌,咱们一步步拆解问题并解决。首先得理清根源:你之前从MySQL 5.7升级到8.0时,系统默认的sys库可能没正确创建,或者后续被误删了;而这次升级到8.0.36时,MySQL的升级脚本需要访问sys.sys_config表来完成升级流程,结果找不到对应的表空间文件,直接导致启动失败。

下面是具体的解决步骤:

1. 先停止MySQL服务(如果它还在启动循环的话)

systemctl stop mysql

2. 在你的datadir下创建sys目录并设置正确权限

从你的my.cnf能看到datadir路径是/mnt/HC_Volume_9595394/mysql/,执行以下命令:

mkdir /mnt/HC_Volume_9595394/mysql/sys
chown mysql:mysql /mnt/HC_Volume_9595394/mysql/sys

3. 以跳过权限检查的方式临时启动MySQL

这样能让你不用密码就能连接数据库,手动创建缺失的表:

mysqld_safe --skip-grant-tables &

4. 连接到MySQL并创建sys_config表

打开新的终端窗口,直接连接MySQL:

mysql

然后执行升级脚本里失败的那段建表SQL:

CREATE TABLE IF NOT EXISTS sys.sys_config (
    variable VARCHAR(128) PRIMARY KEY,
    value VARCHAR(128),
    set_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    set_by VARCHAR(128)
) ENGINE = InnoDB;

5. (可选但建议)插入默认的sys配置数据

为了避免后续出现其他潜在问题,把sys库的默认配置数据补进去:

INSERT INTO sys.sys_config (variable, value) VALUES
('diagnostics.allow_i_s_tables', 'OFF'),
('diagnostics.include_raw', 'OFF'),
('ps_thread_trx_info.max_length', '65535'),
('statement_performance_analyzer.limit', '100'),
('statement_performance_analyzer.view', 'NULL'),
('statement_truncate_len', '64');

6. 正常关闭并重启MySQL服务

先关闭临时启动的MySQL进程:

mysqladmin shutdown

然后正常启动服务:

systemctl start mysql

做完这些操作,MySQL应该就能正常启动了。后续记得升级前一定要备份好datadir里的所有数据,避免类似的意外情况再次发生。

备注:内容来源于stack exchange,提问作者clarkk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 02:38:00