sql >> Databasteknik >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 på macOS 10.15 Catalina kommer inte att köras som tjänst

Använd aldrig sudo med kommandot brew . Det kommer att förstöra äganderätten till relaterade filer. Kör brew eftersom root inte stöds. (Jag pratar om brew , inte mysqld )

Citat från Homebrew doc

Varningar från källans kodL381>-kodL381 brygga

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
}

Lösningar

  1. Inaktivera tjänsten och ta bort 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
    
  2. Åtgärda ägandet av hembryggrelaterade filer

    # 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. Återaktivera MySQL-tjänsten.

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

Uppdatera :

Det verkar som att några av er inte är bekanta med Homebrew. Jag ska förklara hur Homebrew hanterar tjänster här.

mysqld lyssnar på port 3306 som standard, vilket inte är en privilegierad port. Så det finns ingen anledning att starta mysqld med rot. systemd startar mysqld med root på Linux, men macOS är inte Linux.

Homebrew hanterar tjänster med hjälp av launchd , som är en typ av systemd alternativ på macOS. lanserad startar en förgrundsprocess och hanterar den åt dig, precis som vad systemd gör.

bryggtjänster start/stopp mysql kommer att räcka till ditt behov. Den skapar en lanserad fil ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , startar mysqld med den (körs av nuvarande användare).

/usr/local/mysql/support-files/mysql.server är ett skalskript från MySQL för att hjälpa dig att starta mysqld . Att använda det direkt rekommenderas inte om inte du bygger MySQL från källan utanför Hembryggt. Om du använder Homebrew, håll dig bara till bryggtjänster . Eller säg det på ett annat sätt, om du använder Homebrew bör du göra saker på Homebrew-sättet.



  1. SSIS - värdet kan inte konverteras på grund av en potentiell förlust av data

  2. PHP MySQL PDO:hur man bevarar inledande nollor i int-kolumner med nollfyllning

  3. EF:Felaktig användning av rumsligt/fulltext/hashindex och explicit indexordning

  4. PHP mysql_num_rows tärningsfel