为什么我不能丢弃MySQL数据库?

Wil*_*sen 14 mysql database macos pid

问题

我在Mac OS 10.8.2上运行MySQL 5.5.23并且无法删除特定数据库,但我可以删除其他数据库.

当我尝试删除特定的表时,我收到此错误:

#1548 - Cannot load from mysql.proc. The table is probably corrupted
Run Code Online (Sandbox Code Playgroud)

试图修复

  • 我重新启动了系统
  • 我试图通过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上午[纽约]

日志和反馈(根据评论中的@Thomas) 为了找到所有日志,我跑了(cli):

$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
Run Code Online (Sandbox Code Playgroud)

我收到了这个反馈:

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.
Run Code Online (Sandbox Code Playgroud)

我正在调查mysql_upgrade.

更新[2] 2013-01-05 4:04 pm [纽约]

我跑了这个:

sudo /usr/local/mysql/support-files/mysql.server stop
Run Code Online (Sandbox Code Playgroud)

并收到此错误:

ERROR! MySQL server PID file could not be found!
Run Code Online (Sandbox Code Playgroud)

更新[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
Run Code Online (Sandbox Code Playgroud)

文章咨询

Md.*_*med 6

我遇到了一个问题,即对我的数据库(名为:caloriecalculator)的查询花费的时间太长,而且根本不会下降。我按照以下步骤操作,它解决了我的问题:

  1. 查看所有 MySQL 进程:mysqladmin processlist -u root -p

mysql进程

  1. 杀死与卡路里计算器相关的所有进程,因为它阻止了我要执行的下一个查询。mysqladmin -u root -p kill 4

  2. 现在运行:删除数据库卡路里计算器;

在此处输入图片说明


Mic*_*ant 3

我会尝试:

  • 备份/保存任何包含重要数据的数据库。
  • 删除 mySQL
  • 重新安装 mySQL
  • 恢复所有备份的数据库。