1;2为网上参考的办法,未生效。3生效 1.更改proc这张表中的comment字段的列属性已经由char(64)改为text类型。 ALTER TABLE `proc` MODIFY COLUMN `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER `sql_mode`; 但是设计表后,发现字段属性已经是text 2.mysql_upgrade -u root -p -s(只升级系统库) 执行后卡住,如截图,虽然显示mysql.proc ok ,但再次执行更新sql仍然报错。 3.查看mysql-error.log,发现报错 Incorrect definition of table mysql.proc: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVA 翻译后时:表mysql.proc的定义不正确:位置14处应为列“sql_mode”设置类型 所以去查看mysql.proc表,发现表为空,查询其它学校数据库的mysql.proc是有数据的,导出这些数据,如insert.txt中内容,然后在当前出错的库执行下insert 再次执行更新sql,无报错,修复完成。