`brew services start mysql` 和 `mysql.server start` 之间的区别
Difference between `brew services start mysql` and `mysql.server start`
我使用自制程序 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
感谢您的帮助!
根据brew services
的帮助信息,当你运行
brew services start mysql
它会在登录时安装并启动服务公式(如果您 运行 使用 sudo
命令,则在启动时)。这意味着您现在将在 ~/Library/LaunchAgents
中拥有一个 plist 文件(或者在 /Library/LaunchDaemons
中,如果您 运行 使用 sudo
的命令)。对于 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
页面:
adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log file.
我使用自制程序 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
感谢您的帮助!
根据brew services
的帮助信息,当你运行
brew services start mysql
它会在登录时安装并启动服务公式(如果您 运行 使用 sudo
命令,则在启动时)。这意味着您现在将在 ~/Library/LaunchAgents
中拥有一个 plist 文件(或者在 /Library/LaunchDaemons
中,如果您 运行 使用 sudo
的命令)。对于 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
页面:
adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log file.