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的主要内容,如果未能解决你的问题,请参考以下文章