MacOS:启动时自动启动 mysql

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于MacOS:启动时自动启动 mysql的主要内容,如果未能解决你的问题,请参考以下文章

管理 macOS 的启动项

在 Xampp 启动 (OSX) 时自动启动(Apache、mysql 和 FTP)

如何不让mysql每次开机时自动启动

mac 怎么用终端命令启动mysql

控制macOS的开机启动

XAMPP 在 Windows 7 启动时自动启动