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

PHPmyAdmin无法创建存储过程,报#1558错误求助(Mac Ventura)

解决Mac Ventura上MariaDB 10.4.27的mysql.proc列数不匹配问题

核心原因

从MariaDB 10.1.8升级到10.4.27后,系统表mysql.proc的结构发生了变更,但升级脚本未正确执行,导致列数不符,无法创建存储过程。

手动修复步骤

1. 停止MariaDB服务

根据安装方式执行对应命令:

  • Homebrew安装:
brew services stop mariadb
  • 其他安装方式:
sudo /usr/local/mysql/support-files/mysql.server stop

2. 启动MariaDB跳过权限验证

启动时跳过权限表检查,方便修改系统表:

mysqld_safe --skip-grant-tables &

3. 连接到MariaDB

直接在终端输入:

mysql

4. 更新mysql.proc表结构

执行以下SQL语句添加缺失的列(对应10.1到10.4的结构变更):

ALTER TABLE mysql.proc ADD COLUMN sql_mode varchar(8192) NOT NULL DEFAULT '' AFTER comment;
ALTER TABLE mysql.proc ADD COLUMN comment text NOT NULL AFTER sql_mode;
ALTER TABLE mysql.proc ADD COLUMN character_set_client varchar(32) DEFAULT NULL AFTER comment;
ALTER TABLE mysql.proc ADD COLUMN collation_connection varchar(32) DEFAULT NULL AFTER character_set_client;
ALTER TABLE mysql.proc ADD COLUMN db_collation varchar(32) DEFAULT NULL AFTER collation_connection;
ALTER TABLE mysql.proc ADD COLUMN body_utf8 text NOT NULL AFTER db_collation;

提示:如果某列已存在,直接跳过对应的ALTER语句即可

5. 退出并重启MariaDB

执行退出命令:

EXIT;

停止安全模式服务:

mysqladmin shutdown

正常启动服务:

brew services start mariadb
# 或对应你的启动命令
sudo /usr/local/mysql/support-files/mysql.server start

6. 验证修复

重新打开PHPMyAdmin尝试创建存储过程,若不再弹出#1558错误,说明修复成功。

替代方案(手动修改无效时)

备份数据库后重新初始化系统表:

  1. 备份所有数据库:
mysqldump -u root -p --all-databases > all_dbs_backup.sql
  1. 停止服务后删除mysql数据目录(Homebrew路径一般为/usr/local/var/mysql):
rm -rf /usr/local/var/mysql
  1. 重新初始化系统表(替换basedir为你的MariaDB实际安装路径):
mysql_install_db --user=mysql --basedir=/usr/local/Cellar/mariadb/10.4.27 --datadir=/usr/local/var/mysql
  1. 启动服务并恢复备份:
mysql -u root -p < all_dbs_backup.sql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:25:32