【问题标题】:Difference between `brew services start mysql` and `mysql.server start``brew services start mysql` 和 `mysql.server start` 之间的区别
【发布时间】:2017-09-11 03:37:58
【问题描述】:

我使用自制软件brew install mysql 安装了 MySQL,我注意到 MySQL 可以通过两种不同的方法进行管理:

brew services start mysql

mysql.server start

使用 brew services 启动服务与使用普通 mysql.server 方法启动服务有什么区别?还是它们本质上是一样的,只是别名不同?

看起来他们都使用相同的可执行文件:/usr/local/Cellar/mysql/5.7.17/bin/mysqld

感谢您的帮助!

【问题讨论】:

    标签: mysql homebrew


    【解决方案1】:

    根据brew services的帮助信息,运行时

    brew services start mysql
    

    它会在登录时安装并启动服务公式(如果您使用sudo 运行命令,则在启动时)。这意味着您现在将在 ~/Library/LaunchAgents 中拥有一个 plist 文件(如果您使用 sudo 运行命令,则在 /Library/LaunchDaemons 中)。对于mysql,plist文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>KeepAlive</key>
      <true/>
      <key>Label</key>
      <string>homebrew.mxcl.mysql</string>
      <key>ProgramArguments</key>
      <array>
        <string>/usr/local/opt/mysql/bin/mysqld_safe</string>
        <string>--bind-address=127.0.0.1</string>
        <string>--datadir=/usr/local/var/mysql</string>
      </array>
      <key>RunAtLoad</key>
      <true/>
      <key>WorkingDirectory</key>
      <string>/usr/local/var/mysql</string>
    </dict>
    </plist> 
    

    这意味着默认情况下mysqld_safe 使用--bind-address=127.0.0.1--datadir=/usr/local/var/mysql 命令行选项调用。

    当你跑步时

    mysql.server start
    

    你直接执行位于/usr/local/bin/mysql.server的mysql脚本。

    主要区别在于brew services 版本,您运行mysqld_safe,根据其man 页面:

    添加了一些安全功能,例如在发生错误时重新启动服务器并将运行时信息记录到错误日志文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2017-02-16
      • 2018-12-23
      • 2018-11-10
      相关资源
      最近更新 更多