"无法从mysql.procs_priv加载.该表可能已损坏"在Osx/homebrew上

a20*_*a20 5 mysql corrupt

问题:

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

平台: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. 将查询减少到最明显并取出函数:CREATE USER 'newuser';仍然会抛出相同的错误.
  3. 修复mysql.procs_priv表
  4. 更改所有的charmysql.procs_privvarchar,因为这里建议.好吧,他建议改为text但对核心mysql表来说这似乎太疯狂了.

小智 8

我认为使用这个会更好:

mysql_upgrade -u root -p
Run Code Online (Sandbox Code Playgroud)

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

  • 这工作得很好,我不必重新安装 mysql! (2认同)

a20*_*a20 3

完全删除 mysql 并重新安装它有效(不到 15 分钟)。

1. 从系统中卸载并清除 MYSQL

  1. 备份数据库。
  2. 停止并终止任何 MySQL 进程。检查进程ps -ax | grep mysql
  3. 卸载mysql

    brew remove mysql
    brew cleanup
    
    Run Code Online (Sandbox Code Playgroud)
  4. 删除所有残留文件

    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*
    
    Run Code Online (Sandbox Code Playgroud)
  5. 卸载之前的自动登录

    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
    
    Run Code Online (Sandbox Code Playgroud)
  6. 删除之前的配置。删除该MYSQLCOM=-YES-/etc/hostconfig

  7. 删除以前的首选项

    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
    
    Run Code Online (Sandbox Code Playgroud)
  8. 可选,重新启动计算机。我没有。

2.安装MySQL

  1. 安装MySQL

    brew install mysql
    
    Run Code Online (Sandbox Code Playgroud)
  2. 设置为启动时运行

    brew services start mysql
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确保安装安全

    mysql_secure_installation
    
    Run Code Online (Sandbox Code Playgroud)