Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 na macOS 10.15 Catalina nie będzie działać jako usługa

Nigdy nie używaj sudo poleceniem brew . Zrujnuje to własność powiązanych plików. Uruchamiam brew jako root nie jest obsługiwany. (Mówię o brew , a nie mysqld )

Cytat z dokumentu Homebrew

Ostrzeżenia z kodu źródłowego 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
}

Rozwiązania

  1. Wyłącz usługę i usuń demona uruchamiania.

    # 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
    
  2. Napraw własność plików związanych z 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
    
  3. Włącz ponownie usługę MySQL.

    # DO NOT USE "sudo brew"
    brew services start mysql
    

Aktualizacja :

Wygląda na to, że niektórzy z was nie znają Homebrew. Wyjaśnię, jak Homebrew zarządza usługami tutaj.

mysqld nasłuchuje na porcie 3306 domyślnie, który nie jest portem uprzywilejowanym. Więc nie ma potrzeby uruchamiania mysqld z korzeniem. systemd uruchamia mysqld z rootem na Linuksie, ale macOS to nie Linuks.

Homebrew zarządza usługami za pomocą launchd , który jest rodzajem systemd alternatywa na macOS. launchd uruchamia proces na pierwszym planie i zarządza nim za Ciebie, tak jak to, co systemd tak.

brew services start/stop mysql wystarczy. Tworzy uruchomiony plik ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , uruchamia mysqld z nim (uruchamiany przez bieżącego użytkownika).

/usr/local/mysql/support-files/mysql.server to skrypt powłoki dostarczany przez MySQL, który pomaga uruchomić mysqld . Używanie go bezpośrednio nie jest zalecane chyba że budujesz MySQL ze źródeł zewnętrznych Homebrew. Jeśli używasz Homebrew, po prostu trzymaj się brew services . Lub powiedz to w inny sposób, jeśli używasz Homebrew, powinieneś robić rzeczy w sposób Homebrew.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt::bind_result():Liczba zmiennych wiązania nie odpowiada liczbie pól w przygotowanej instrukcji

  2. Zapytanie MySQL nie działa podczas używania zmiennej php w klauzuli where

  3. Jak wybrać DISTINCT wiersze bez zaznaczenia pola ORDER BY?

  4. Konfiguracja wysokiej dostępności dla węzłów ClusterControl przy użyciu CMON HA

  5. django.core.exceptions.ImproperlyConfigured:Błąd podczas ładowania modułu MySQLdb:Brak modułu o nazwie MySQLdb