提示:雖然我是用的 Mariadb 數據庫,但是此解決方案同樣適用於 MySQL 數據庫。 Mariadb 和 MySQL
的報錯信息和解決方案是一模一樣的。
今天在使用 Navicat 工具操作我的數據庫時,想要轉儲SQL語句。不料遇見錯誤
完整錯誤如下:
1558 column count of mysql.proc is wrong.Expected37,found 20.created with mysql 50381,now running 100328.please use mysql_upgrade to fix this error。
根據提示使用 mysql_upgrade 命令升級數據庫,無奈服務器沒有這個命令。後來經過折騰,發現此命令在 mariadb-server-utils 包中。
安裝完之後使用命令升級(MySQL也是用這個命令):
mysql_upgrade -uroot -p
然後輸入密碼,看到控制檯輸出類似信息即升級成功:
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.servers OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
Upgrading from a version before MariaDB-10.1
Phase 2/7: Installing used storage engines
Checking for tables with unknown storage engine
Phase 3/7: Fixing views
Phase 4/7: Running 'mysql_fix_privilege_tables'
Phase 5/7: Fixing table and database names
Phase 6/7: Checking and upgrading tables
Processing databases
information_schema
performance_schema
test
TestDB
TestDB.users OK
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK
再去轉儲SQL文件…成功!
技 術 無 他, 唯 有 熟 爾。
知 其 然, 也 知 其 所 以 然。
踏 實 一 些, 不 要 着 急, 你 想 要 的 歲 月 都 會 給 你。