"Cannot load from mysql.procs_priv. The table is probably corrupted" 在 Osx / 自制软件

"Cannot load from mysql.procs_priv. The table is probably corrupted" on Osx / homebrew

问题:

尝试创建新 mysql 用户时获得 Cannot load from mysql.procs_priv. The table is probably corrupted

平台: OSX Yosemite, Homebrew

尝试了以下所有方法,没有用

  1. 正在升级:mysql_upgrade -uroot -p
    • 我不得不使用 --force 因为这个:This installation of MySQL is already upgraded to 5.7.9, use --force if you still need to run mysql_upgrade
    • 接下来我不得不使用 --skip-version-check 因为这个:Error: Server version (5.7.18) does not match with the version of the server (5.7.9) with which this program was built/distributed. You can use --skip-version-check to skip this check.
    • 毕竟
    • 还是没用
  2. 将查询减少到最明显和 taking out functions: CREATE USER 'newuser';,仍然会抛出相同的错误。
  3. 正在修复 mysql.procs_priv table
  4. 正在将 mysql.procs_priv 中的所有 char 列更改为 varcharas suggested here。好吧,他建议更改为 text,但这对于核心 mysql table.
  5. 来说似乎太疯狂了

完全删除 mysql 并重新安装成功(不到 15 分钟)。

1.从系统

中卸载并清除 MYSQL
  1. 备份数据库。
  2. 停止并终止所有 MySQL 进程。使用 ps -ax | grep mysql
  3. 检查进程
  4. 卸载mysql

    brew remove mysql
    brew cleanup
    
  5. 删除所有残留文件

    sudo rm /usr/local/mysql
    sudo rm -rf /usr/local/var/mysql
    sudo rm -rf /usr/local/mysql*
    sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    sudo rm -rf /Library/StartupItems/MySQLCOM
    sudo rm -rf /Library/PreferencePanes/My*
    
  6. 卸载以前的自动登录

    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
    
  7. 删除以前的配置。从 /etc/hostconfig

  8. 中删除行 MYSQLCOM=-YES-
  9. 删除以前的首选项

    sudo rm -rf ~/Library/PreferencePanes/My*
    sudo rm -rf /Library/Receipts/mysql*
    sudo rm -rf /Library/Receipts/MySQL*
    sudo rm -rf /private/var/db/receipts/*mysql*
    sudo rm -rf /private/var/db/receipts/*mysql*
    sudo rm -rf /private/var/mysql
    
  10. 可选,重启电脑。我没有。

2。安装 MYSQL

  1. 安装Mysql

    brew install mysql
    
  2. 启动时设置为运行

    brew services start mysql
    
  3. 确保安装安全

    mysql_secure_installation
    

我觉得用这个会更好:

mysql_upgrade -u root -p

输入您的密码并等待几秒钟。