我使用自制程序brew services start mysql
安装了MySQL,我注意到可以使用两种不同的方法管理MySQL:
mysql.server start
和
/usr/local/Cellar/mysql/5.7.17/bin/mysqld
使用brew服务启动服务与使用普通的mysql.server方法启动服务有什么区别吗?或者它们基本上是一样的,只是一个不同的别名?
它们似乎都使用相同的可执行文件:<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_input_spot_from_to_cl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:padding="10dp">
<ImageView
android:id="@+id/circle1_iv"
android:layout_width="10dp"
android:layout_height="10dp"
app:layout_constraintBottom_toTopOf="@+id/circle2_iv"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/circle" />
<ImageView
android:id="@+id/circle2_iv"
android:layout_width="4dp"
android:layout_height="4dp"
app:layout_constraintBottom_toTopOf="@+id/circle3_iv"
app:layout_constraintLeft_toLeftOf="@+id/circle3_iv"
app:layout_constraintRight_toRightOf="@+id/circle3_iv"
app:layout_constraintTop_toBottomOf="@+id/circle1_iv"
app:srcCompat="@drawable/circle" />
<ImageView
android:id="@+id/circle3_iv"
android:layout_width="4dp"
android:layout_height="4dp"
app:layout_constraintBottom_toTopOf="@+id/circle4_iv"
app:layout_constraintLeft_toLeftOf="@+id/circle4_iv"
app:layout_constraintRight_toRightOf="@+id/circle4_iv"
app:layout_constraintTop_toBottomOf="@+id/circle2_iv"
app:srcCompat="@drawable/circle" />
<ImageView
android:id="@+id/circle4_iv"
android:layout_width="10dp"
android:layout_height="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/circle3_iv"
app:srcCompat="@drawable/circle" />
<EditText
android:id="@+id/main_input_spot_from_et"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="14dp"
android:layout_marginStart="14dp"
android:background="#00000000"
android:ellipsize="end"
android:hint="From Station"
android:inputType="textAutoComplete"
android:paddingRight="6dp"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="@+id/circle1_iv"
app:layout_constraintLeft_toRightOf="@+id/circle1_iv"
app:layout_constraintTop_toTopOf="@+id/circle1_iv" />
</android.support.constraint.ConstraintLayout>
感谢您的帮助!
答案 0 :(得分:11)
根据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
:
添加了一些安全功能,例如在发生错误时重新启动服务器并将运行时信息记录到错误日志文件中。