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

无法将SQL文件导入phpMyAdmin,报错#1558寻求解决办法

导入SQL到phpMyAdmin时遇#1558错误,执行mysql_upgrade后仍无法解决

尝试将包含存储过程的SQL文件上传到phpMyAdmin时触发错误,详情如下:

错误信息

执行的SQL查询:

--
-- Procedures
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `Add Blood Inventory Record` ()   
    INSERT INTO `blood inventory`(`Donor Name`, `Donor ID`, `Donor Phone Number`, `Donor Gender`, `Concentration of Plasma`, `Hemoglobin`, `Blood Type`, `Blood Volume`, `Blood Pack ID`, `Storage Staff Name (IN)`, `Storage Staff ID (IN)`, `Storage Staff Name (OUT)`, `Storage Staff ID (OUT)`, `Entry Date`, `Expiry Date`, `Storage Location`, `Storage ID`, `Blood Pack Expired`, `Blood Pack Used`, `Blood Pack Usage Venue`, `Blood Pack Usage Case ID`) 
    VALUES ('[value-1]','[value-2]','[value-3]','[value-4]','[value-5]','[value-6]','[value-7]','[value-8]','[value-9]','[value-10]','[value-11]','[value-12]','[value-13]','[value-14]','[value-15]','[value-16]','[value-17]','[value-18]','[value-19]','[value-20]','[value-21]');

MySQL返回提示:

#1558 - Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100108, now running 100424. Please use mysql_upgrade to fix this error

已尝试执行mysql_upgrade命令,但问题仍存在,无法成功导入SQL文件。


可行解决方法

  • 确保mysql_upgrade完整执行
    以管理员身份运行终端,执行完整升级命令:

    mysql_upgrade -u root -p
    

    输入root密码等待执行完成,之后重启MariaDB服务:

    # Debian/Ubuntu系统
    sudo systemctl restart mariadb
    # CentOS/RHEL系统
    sudo systemctl restart mysqld
    
  • 手动修复mysql.proc表结构
    先备份表避免数据丢失:

    CREATE TABLE mysql.proc_backup LIKE mysql.proc;
    INSERT INTO mysql.proc_backup SELECT * FROM mysql.proc;
    

    针对10.4.x版本执行结构更新:

    ALTER TABLE mysql.proc ADD COLUMN sql_mode varchar(8192) NOT NULL DEFAULT '' AFTER comment;
    

    注:操作需root权限,务必先备份。

  • 拆分SQL文件导入
    暂时注释SQL文件中存储过程的创建代码,先导入表结构和数据:

    -- 注释原存储过程代码
    -- CREATE DEFINER=`root`@`localhost` PROCEDURE `Add Blood Inventory Record` ()   
    --     INSERT INTO `blood inventory`(...) VALUES (...);
    

    导入完成后,在phpMyAdmin的SQL面板单独执行存储过程创建语句,检查语法是否适配当前版本。

  • 适配版本重新导出
    回到生成SQL的MariaDB 10.1.08环境,导出时选择"兼容更高版本"选项,再重新导出并导入到10.4.24环境中。

内容的提问来源于stack exchange,提问作者NirvashNEo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:50:24