【问题标题】:MAMP : Mysql won't turn onMAMP:Mysql 无法打开
【发布时间】:2011-05-07 21:47:16
【问题描述】:

我的 mamp mysql 服务器无法启动。我尝试执行 /Applications/MAMP/bin/startMysql.sh 但这给了我这个错误:

101110 05:50:31 mysqld_safe 登录到 '/Applications/MAMP/logs/mysql_error_log.err'.

101110 05:50:32 mysqld_safe 使用来自的数据库启动 mysqld 守护进程 /Applications/MAMP/db/mysql

101110 05:50:32 mysqld_safe 来自 pid 文件的 mysqld /Applications/MAMP/tmp/mysql/mysql.pid 结束

/Applications/MAMP/logs/mysql_error_log.err:

InnoDB:http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html

InnoDB:无法打开或创建数据文件。

InnoDB:如果你尝试添加新的数据文件,但这里失败了,

InnoDB:你现在应该在 my.cnf 中编辑 innodb_data_file_path

InnoDB:恢复原状,并删除 InnoDB 创建的新 ibdata 文件

InnoDB:在这次失败的尝试中。 InnoDB 只写满了那些文件

InnoDB:零,但尚未以任何方式使用它们。但要小心:做 不是

InnoDB:删除包含您宝贵数据的旧数据文件!

101110 5:53:08 [ERROR] 插件“InnoDB”初始化函数返回错误。

101110 5:53:08 [错误] 插件“InnoDB”注册为存储 ENGINE 失败。

101110 5:53:08 [错误] 无法启动服务器:绑定 TCP/IP 端口: 地址已在使用中

101110 5:53:08 [错误] 你是否已经有另一个 mysqld 服务器 在端口:3306 上运行?

101110 5:53:08 [错误] 中止

101110 5:53:08 [警告] 强制关闭 2 个插件

101110 5:53:08 [注意] /Applications/MAMP/Library/libexec/mysqld: 关机完成

101110 05:53:08 mysqld_safe 来自 pid 文件的 mysqld /Applications/MAMP/tmp/mysql/mysql.pid 结束

【问题讨论】:

  • 你能把'/Applications/MAMP/logs/mysql_error_log.err'文件的内容贴出来吗?
  • 它突然开始工作了!

标签: mysql mamp


【解决方案1】:

twob.net 有一个很好的解决方案。 进入终端并输入

killall -9 mysqld 

检查一下 - http://twob.net/journal/fix-for-mamp-mysql/。为我工作

【讨论】:

  • 我试了还是报错。你能给我另一个解决方案吗?
【解决方案2】:

我发现有时不止一次 mysql 正在运行。当 MySQL 无法启动时,我首先退出 MAMP,然后进入应用程序/实用程序并打开活动监视器。从那里我搜索“我的”,它应该会显示任何可能正在运行的 mysql。然后我要么退出要么强制退出mysql。那时,我可以使用工作的 MySQL 服务器打开 MAMP。

希望对您有所帮助。

【讨论】:

    【解决方案3】:

    这个命令对我有用。

         ps aux | grep mysql 
         lsof -i 
         killall -9 mysqld
    

    如果需要

        sudo killall -9 mysqld
    

    参考:http://www.witheringtree.com/2010/05/how-to-resolve-mysql-not-starting-in-mamp/

    【讨论】:

      【解决方案4】:

      全新/全新安装 MAMP 4.1.1,我遇到了同样的问题。

      运行时: /Applications/MAMP/bin/startMysql.sh

      MySql 报告:

      mysqld_safe error: log-error set to '/Applications/MAMP/logs/mysql_error_log.err', however file don't exists. Create writable for user 'mysql'.

      所以,我运行 touch /Applications/MAMP/logs/mysql_error_log.err 并再次尝试使用 startMysql.sh。它起作用了(但它并不是完全“单独”)!

      【讨论】:

        【解决方案5】:

        我很高兴它自行修复了;)

        从您的错误文件的外观来看,您似乎已经运行了一个 MySQL 实例...不确定这是否适用于 mac,但您可以尝试:

        pidof mysqld
        

        如果这输出了一些东西(一个或几个数字),那么 MySQL 正在运行。如果输出为空,则不是。

        【讨论】:

        • pidof 似乎不是狮子。我通常会为此使用 ps aux | grep mysqld 之类的东西。
        • 或 brew install pidof
        【解决方案6】:

        Jmeyer,有时 MAMP 会做一些奇怪的事情,比如拒绝重启。发生这种情况时,请转到 MAMP 应用程序并单击“首选项”,然后单击“确定”。

        由于某种原因,这会强制重新启动 MAMP 服务器。

        不确定这是否是您想要的,但仍然是一个有用的提示。

        【讨论】:

          【解决方案7】:

          这就是在终端中为我做的:

          sudo chown -R mysql:mysql /usr/local/mysql

          【讨论】:

            【解决方案8】:

            有多种方法可以解决此问题 - 通常一种有效。

            首先,请尝试退出 MAMP,然后:

            sudo killall -9 mysqld
            

            如果失败,请尝试转到 Preferences > Ports 并更改为 MAMP 默认值。单击“确定”。然后应该启动 MySQL。如果您的网站未显示在 localhost,请尝试将端口更改回来。

            您也可以停止 MAMP,进入系统偏好设置 > MySQL 并关闭 MySQL,然后重新启动 MAMP。

            希望这会有所帮助!

            【讨论】:

              【解决方案9】:

              可能解决相同问题的其他方法:

              -进入文件夹 MAMP/db/mysql/ - 删除所有不是文件夹的文件(文件如 'mysql-bin.XXXXXX' / 'mysql-bin.index'/ 'ibdata1' / 'ib_logfileX'

              别担心,这不会删除您的任何数据库,但请确保您没有删除文件夹。这是存储数据库数据的地方。

              【讨论】:

                【解决方案10】:

                另一个问题:
                查看/Applications/MAMP/logs/mysql_error_log.err的所有者是谁

                在我的机器上,它归 admin: admin 所有。
                /Applications/MAMP/bin/startMysql.sh 将无法启动,即使使用 sudo 运行。

                但这会起作用:

                sudo su admin
                /Applications/MAMP/bin/startMysql.sh
                

                【讨论】:

                  【解决方案11】:

                  发生这种情况还有另一个原因,我没有看到有人提到它,所以我会在这个答案中解释它。

                  当您重新启动计算机时,有时您强制关闭应用程序并且 MAMP 无法正确关闭 MySQL,这会使套接字文件保持完整,而不是 MySQL 在其关闭过程中将其干净地删除。据我了解(需要的来源),如果 MySQL 之前被强制关闭,MySQL 曾经进行过套接字文件验证,但它不再这样做了。以下是您需要做的:

                  1. 通过在终端输入killall -9 mysqld 确保没有 MySQL 实例仍在运行,然后按 Enter 键执行命令。它将关闭所有正在运行的剩余 mysql 实例。
                  2. 转到 /Applications/MAMP/tmp/mysql
                  3. 找到 mysql.sock 文件并将其删除。它也可以命名为 mysql.sock.lock。
                  4. 重新启动 MAMP。

                  现在一切都应该启动并运行良好。如果没有或者找不到 mysql.sock 文件,则您的问题可能是其他答案中提到的另一个问题。

                  【讨论】:

                    猜你喜欢
                    • 2014-07-26
                    • 2019-01-06
                    • 2021-12-01
                    • 2020-08-29
                    • 2017-12-14
                    • 2020-04-22
                    • 2013-07-20
                    • 2018-11-05
                    • 2017-03-01
                    相关资源
                    最近更新 更多