簡體   English   中英

`brew services start mysql` 和 `mysql.server start` 之間的區別

[英]Difference between `brew services start mysql` and `mysql.server start`

我使用 homebrew brew install 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 (或/Library/LaunchDaemons如果您使用sudo運行命令)中有一個 plist 文件。 對於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頁:

添加了一些安全功能,例如在發生錯誤時重新啟動服務器並將運行時信息記錄到錯誤日志文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM