Jangan pernah menggunakan sudo
dengan perintah brew
. Ini akan merusak kepemilikan file terkait. Menjalankan brew
sebagai root tidak didukung. (Saya sedang berbicara tentang brew
, bukan mysqld
)
Peringatan dari kode sumber brew
check-run-command-as-root() {
...
odie <<EOS
Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
EOS
}
Solusi
-
Nonaktifkan layanan dan hapus launchdaemon.
# stop and unload the launchdaemon sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist # remove the lauchdaemon file sudo rm -f /Library/LaunchDaemons/homebrew.mxcl.mysql.plist sudo rm -f /tmp/mysql.sock /tmp/mysqlx.sock
-
Perbaiki kepemilikan file terkait homebrew
# For x86 Mac sudo chown -R "$(whoami):admin" /usr/local/* # For M1 Mac sudo chown -R "$(whoami):admin" /opt/homebrew/* # it will take some time
-
Aktifkan kembali layanan MySQL.
# DO NOT USE "sudo brew" brew services start mysql
Perbarui :
Sepertinya beberapa dari Anda tidak akrab dengan Homebrew. Saya akan menjelaskan bagaimana Homebrew mengelola layanan di sini.
mysqld
mendengarkan di port 3306
secara default, yang bukan merupakan port istimewa. Jadi tidak perlu memulai mysqld
dengan akar. systemd
memulai mysqld
dengan root di Linux, tetapi macOS bukan Linux.
Homebrew mengelola layanan dengan bantuan launchd
, yang merupakan jenis systemd
alternatif di macOS. launchd
memulai proses latar depan dan mengelolanya untuk Anda, seperti systemd
tidak.
brew services start/stop mysql
akan mencukupi kebutuhan Anda. Itu membuat file launchd ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
, memulai mysqld
dengan itu (dijalankan oleh pengguna saat ini).
/usr/local/mysql/support-files/mysql.server
adalah skrip shell yang dibawa oleh MySQL untuk membantu Anda memulai mysqld
. Menggunakannya secara langsung tidak disarankan kecuali Anda membangun MySQL dari sumber luar buatan sendiri. Jika Anda menggunakan Homebrew, cukup gunakan brew services
. Atau ucapkan dengan cara lain, jika Anda menggunakan Homebrew, Anda harus melakukan sesuatu dengan cara Homebrew.