问题
我在Mac OS 10.8.2上运行MySQL 5.5.23并且无法删除特定数据库,但我可以删除其他数据库。
当我尝试删除特定表时,我收到此错误:
#1548 - Cannot load from mysql.proc. The table is probably corrupted
尝试修复
- 我已经重启了系统
- 我试图通过 CLI 重新启动 MySQL
$ sudo /usr/local/mysql/support-files/mysql.server stop
- 但收到此错误
ERROR! MySQL server PID file could not be found!
- 我已经修复了 mysql.proc 表。
REPAIR TABLE mysql.proc
REPAIR TABLE mysql.proc USE_FRM
- 我已经修复了所有 mysql.* 表。
REPAIR TABLE mysql.*
- 从命令行
运行mysqlcheck时
mysqlcheck --repair --all-databases
mysqlcheck --repair specific-db
- 我收到了这个错误:
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (2) when trying to connect
- 我收到了这个错误:
当前状态
我仍然无法删除原始特定数据库,但可以删除其他数据库。
更新[1] 2013-01-05 11:15 am [纽约]
日志和反馈(根据@Thomas 在评论中) 要查找所有日志,我运行(cli):
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
我收到了这样的反馈:
130105 11:35:21 [Warning] Can't create test file /usr/local/mysql-5.5.23-osx10.6-x86_64/data/wills-mbp.lower-test
130105 11:35:21 [Warning] Can't create test file /usr/local/mysql-5.5.23-osx10.6-x86_64/data/wills-mbp.lower-test
130105 11:35:21 [Note] Plugin 'FEDERATED' is disabled. /usr/local/mysql/bin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
130105 11:35:21 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
我正在调查mysql_upgrade
。
更新[2] 2013-01-05 4:04 pm [纽约]
我跑了这个:
sudo /usr/local/mysql/support-files/mysql.server stop
并收到此错误:
ERROR! MySQL server PID file could not be found!
更新[2.1] 2013-01-05 5:37 pm [纽约]
我运行ps auxww | grep mysql
并找到了该mysqld
进程并将其杀死(sudo kill [process id]
)。然后我能够成功重新启动mysql。但是,我仍然无法删除上面提到的特定数据库。
解决
在尝试手动修复损坏和许多建议以及此处列出的其他答案之后,重新安装 mySQL 是解决我的问题的唯一方法。
在Mac(运行 10.8.2)上,我还必须手动删除一些内容以进行全新安装:
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm /etc/my.cnf