Difference between `brew services start mysql` and `mysql.server start`

醉酒当歌 提交于 2019-12-05 14:39:45

问题


I installed MySQL using homebrew brew install mysql, and I noticed that MySQL can be managed with two different methods:

brew services start mysql
and
mysql.server start

Is there any difference when starting the service using brew services vs starting it with the normal mysql.server method? Or are they basically the same thing, just a different alias?

It appears they both use the same executable: /usr/local/Cellar/mysql/5.7.17/bin/mysqld

Thank you for the help!


回答1:


According to the help message of brew services, when you run

brew services start mysql

it installs and starts the service formula at login (or boot if you run the command with sudo). It means you will have now a plist file in ~/Library/LaunchAgents (or in /Library/LaunchDaemons if you run the command with sudo). For mysql, the plist file is the following:

<?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> 

it means that by default mysqld_safe is called with the --bind-address=127.0.0.1 and --datadir=/usr/local/var/mysql command line options.

when you run

mysql.server start

you directly execute the mysql script located in /usr/local/bin/mysql.server.

The main difference is that with the brew services version, you run mysqld_safe which, according to its man page:

adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log file.



来源:https://stackoverflow.com/questions/43418955/difference-between-brew-services-start-mysql-and-mysql-server-start

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!