【问题标题】:MacOSX: autostart mysql on bootMacOS:启动时自动启动 mysql
【发布时间】:2011-12-22 07:19:18
【问题描述】:

我刚刚通过自制软件在终端安装了mysql。

现在当我尝试连接到 mysql 时它失败了,但是在我运行 mysqld 之后它可以工作..

所以我现在需要做的是在我启动我的 Mac 时运行 mysqld。

我在 Google 上搜索了mysqld autoload at startup 等,但找不到正确的答案。

希望有人能指出我正确的方向。谢谢!

【问题讨论】:

    标签: macos terminal homebrew mysql


    【解决方案1】:

    brew info mysql 为您提供了在启动时加载 MySQL 的说明,但您需要做的只是:

    mkdir -p ~/Library/LaunchAgents
    cp `brew --prefix mysql`/*mysql*.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/*mysql*.plist
    

    【讨论】:

    • 我相信只有当你通过 brew 安装了 mysql 时这才是正确的,但如果你有,那就太好了!
    • 在我最新的安装中,plist文件命名为:homebrew.mxcl.mysql.plist
    • 如果你安装了 Mariadb,文件名是:homebrew.mxcl.maraidb.plist
    • 虽然这个答案在历史上是准确的,但最近的 brew services start 命令是现代解决方案,比神秘的 launchctl 更容易使用
    • 应该输入/Library/LaunchAgents 还是/Library/LaunchDaemons?我认为是后者。
    【解决方案2】:

    如今,brew info mysql 为您提供以下声明:

    现在启动 mysql 并在登录时重新启动: brew服务启动mysql

    或者,如果您不想要/不需要后台服务,您可以运行: mysql.server 启动

    所以运行brew services start mysql 将确保它作为服务运行并在每次登录时重新启动。

    如果您使用sudo 运行该命令:

    sudo brew services start mysql
    

    将使服务在启动时运行而不是在登录后运行,这对服务器更有用。

    【讨论】:

    • 这是唯一真正回答问题的答案,并在 BOOT 而不是 LOGIN 时启动服务器。它在正确的位置创建正确的 .plist。这真的应该被标记为正确的答案......即使它实际上并不适合我。但我认为这是一个单独的问题。
    • 不允许执行 sudo,因为“以 root 身份运行 Homebrew 极其危险且不再受支持”。我现在如何在启动时执行此操作?
    • 看起来没有办法,除非root 拥有brew 可执行文件。您可能需要从其他答案中采用LaunchDaemons 方式。恕我直言,这是 Homebrew 的人们做出的最糟糕的决定。我们知道我们在做什么,至少应该有一个开关来禁用这种愚蠢的强制执行。
    【解决方案3】:

    在本文发布之日,我使用 Homebrew 安装了 MySQL 5.6.13,Mipadi 的回答失败了。但我按照他的建议检查了brew info mysql,它给了我一个可行的解决方案:

    > ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
    

    【讨论】:

      【解决方案4】:
      mkdir -p ~/Library/LaunchAgents
      cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
      launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
      

      【讨论】:

        【解决方案5】:

        我已经 brew install MYSQL。

        输入

        brew info mysql
        

        并按照给出的说明进行操作:

        在登录时启动 mysql:

        ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
        

        【讨论】:

          【解决方案6】:

          您不再需要设置 plist。截至 2017 年 10 月的最新版 brew (1.3.4),您只能运行:

          brew services start <service_name>

          它会在您每次重新启动计算机时自动启动。命令brew info 给你这个

          现在启动 mysql 并在登录时重新启动: brew服务启动mysql 或者,如果您不想要/不需要后台服务,您可以运行: mysql.server 启动

          【讨论】:

            【解决方案7】:

            对 Alejandro 的后续跟进,无法在评论中显示。

            检查哪些服务是用户(登录)和根(启动):

            $ brew services list
            Name       Status  User   Plist
            chronograf started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.chronograf.plist
            grafana    started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.grafana.plist
            influxdb   started root   /Library/LaunchDaemons/homebrew.mxcl.influxdb.plist
            kapacitor  stopped        
            mariadb    started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
            memcached  started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.memcached.plist
            telegraf   started jacob  /Users/jacob/Library/LaunchAgents/homebrew.mxcl.telegraf.plist
            

            【讨论】:

              猜你喜欢
              • 2017-04-30
              • 2013-07-01
              • 2014-01-24
              • 2018-04-04
              • 1970-01-01
              • 2018-12-21
              • 2014-12-24
              • 1970-01-01
              • 2015-01-31
              相关资源
              最近更新 更多