Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能删除MySQL数据库吗? 问题_Mysql_Database_Macos_Pid - Fatal编程技术网

为什么可以';我不能删除MySQL数据库吗? 问题

为什么可以';我不能删除MySQL数据库吗? 问题,mysql,database,macos,pid,Mysql,Database,Macos,Pid,我在Mac OS 10.8.2上运行MySQL 5.5.23,无法删除特定数据库,但我可以删除其他数据库 当我尝试删除特定表时,会出现以下错误: #1548 - Cannot load from mysql.proc. The table is probably corrupted ERROR! MySQL server PID file could not be found! 尝试修复 我已经重新启动了系统 我已尝试通过CLI重新启动MySQL $sudo/usr/local/mysq

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

当我尝试删除特定表时,会出现以下错误:

#1548 - Cannot load from mysql.proc. The table is probably corrupted
ERROR! MySQL server PID file could not be found!
尝试修复
  • 我已经重新启动了系统
  • 我已尝试通过CLI重新启动MySQL
    • $sudo/usr/local/mysql/support files/mysql.server stop
    • 但是收到了这个错误
      错误!找不到MySQL服务器PID文件
  • 我已经修复了mysql.proc表。
    • 修复表mysql.proc
    • REPAIR TABLE mysql.proc USE\u FRM
  • 我已经修复了所有mysql.*表。
    • 修复表mysql.*
  • 从命令行运行mysqlcheck时
    • mysqlcheck--repair--all数据库
    • mysqlcheck——修复特定数据库
      • 我收到了这个错误:
        mysqlcheck:get错误:2002:在尝试连接时无法通过socket'/var/MySQL/MySQL.sock'(2)连接到本地MySQL服务器
现状 我仍然无法删除原始特定数据库,但可以删除其他数据库

更新[1]2013-01-05[纽约]上午11:15 日志和反馈(根据@Thomas的评论) 要查找所有日志,我运行了(cli):

我收到了以下反馈:

我正在研究mysql的升级

更新[2]2013-01-05下午4:04[纽约] 我运行了以下命令:

sudo /usr/local/mysql/support-files/mysql.server stop
并收到此错误:

#1548 - Cannot load from mysql.proc. The table is probably corrupted
ERROR! MySQL server PID file could not be found!
更新[2.1]2013-01-05[纽约]下午5:37

我运行了
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

征询的文章
    • 我会尝试:

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

      我在Linux服务器上遇到这种情况,原因是数据库目录已损坏

      更新:要做的一件事是进入MySQL数据库目录并执行
      ls-la
      ,以验证邪恶数据库在权限、所有权等方面是否与其他数据库相同。例如,此处无法删除“原始”数据库(它是由以root身份运行的愚蠢工具创建的):

      运行
      chown-mysql:mysql\u-db\u-xatex\u-original;chmod 700 _db_xatex_original
      将解决此问题(但请检查目录中的,以验证是否也存在权限和所有权)


      最后,我使用了以下丑陋的黑客(在尝试停止、重新启动和修复
      修复
      可能针对的任何东西之后):

      • 创建了一个数据库“替罪羊”
      • 停止MySQL服务器
      • 将MySQL服务器创建的目录/var/lib/MySQL/scapegoat复制到/tmp
      • 重新启动MySQL服务器,丢弃数据库“替罪羊”,停止服务器
      • 现在我有了一个干净、空的DB目录副本,MySQL对此一无所知。
      • 将“evildb”目录移动到/tmp(这样,如果出现问题,我可以将其放回去)
      • 将“替罪羊”目录移动到/var/lib/mysql,并将其重命名为“evildb”
      • 启动MySQL服务器
      • 不确定我是否在这一点上进行了更多的维修
      • 而“evildb”数据库就可以删除了
      我的解释是,当要求删除数据库时,MySQL服务器首先对数据库目录中的文件执行一些检查。如果这些检查失败,下降也会失败。这些检查必须与
      REPAIR
      执行的检查略有不同。可能在受影响的目录中存在意外情况

      我认为这是在SuSE 11.2 Linux发行版的MySQL 5.1或5.2上实现的。希望能有帮助

      更新 回想起来,我不记得在“proc”上有错误。因此,我不太确定问题是否出在目录中。它可能与
      proc
      表连接,而不是表损坏。您是否尝试过目视检查
      proc
      数据库表,以便在其中找到属于邪恶数据库的内容

      USE mysql;
      SELECT * FROM proc;
      
      这或由此产生的任何错误都有助于解决问题。您可能知道,有些行的
      db
      列不正确。必要时,您可以导出
      proc
      表,并在清理后重新加载它(通过SQL或磁盘文件)

      试验 我对上述更新进行了部分验证。通过故意将垃圾插入新创建的数据库
      evil
      proc
      表中,我部分地再现了您的症状(无法恢复的数据库,MySQL连接在尝试时崩溃)。错误号不是1548;但如果我把正确的垃圾放在那张桌子上,也许会是。。。无论如何,有用的一点是,通过删除
      邪恶
      数据库的所有引用,后者再次成为可删除的:

      mysql> drop database evil;
      ERROR 2013 (HY000): Lost connection to MySQL server during query
      mysql> use mysql;
      No connection. Trying to reconnect...
      Connection id:    1
      Current database: *** NONE ***
      
      Database changed
      mysql> DELETE FROM proc WHERE db = 'evil';
      Query OK, 2 rows affected (0.00 sec)
      
      mysql> drop database evil;
      Query OK, 0 rows affected (0.00 sec)
      

      我遇到了一个问题,在我的数据库(名为:CaloricalCalculator)上的查询花费了太长时间,而且根本不会停止。我遵循以下步骤,解决了我的问题:

    • 查看所有MySQL进程:mysqladmin processlist-u root-p
    • 杀死所有与卡路里计算器相关的进程,因为它阻止了我对b的下一个查询
      mysql> drop database evil;
      ERROR 2013 (HY000): Lost connection to MySQL server during query
      mysql> use mysql;
      No connection. Trying to reconnect...
      Connection id:    1
      Current database: *** NONE ***
      
      Database changed
      mysql> DELETE FROM proc WHERE db = 'evil';
      Query OK, 2 rows affected (0.00 sec)
      
      mysql> drop database evil;
      Query OK, 0 rows affected (0.00 sec)