sql >> Database >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 op macOS 10.15 Catalina werkt niet als service

Gebruik nooit sudo met commando brew . Het zal het eigendom van gerelateerde bestanden verpesten. brew uitvoeren omdat root niet wordt ondersteund. (Ik heb het over brew , niet mysqld )

Citaat uit Homebrew doc

Waarschuwingen van de broncode van 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
}

Oplossingen

  1. Schakel de service uit en verwijder de 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. Eigendom van homebrew-gerelateerde bestanden herstellen

    # 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. Schakel de MySQL-service opnieuw in.

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

Bijwerken :

Het lijkt erop dat sommigen van jullie niet bekend zijn met Homebrew. Ik zal hier uitleggen hoe Homebrew services beheert.

mysqld luistert op poort 3306 standaard, wat geen bevoorrechte poort is. Het is dus niet nodig om mysqld te starten met wortel. systemd start mysqld met root op Linux, maar macOS is geen Linux.

Homebrew beheert diensten met behulp van launchd , wat een soort systemd . is alternatief op macOS. launchd start een voorgrondproces en beheert het voor u, net zoals systemd doet.

brew services start/stop mysql zal voldoende zijn voor uw behoefte. Het creëert een launchd-bestand ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , start mysqld ermee (gerund door huidige gebruiker).

/usr/local/mysql/support-files/mysql.server is een shellscript van MySQL om u te helpen mysqld te starten . Direct gebruik wordt niet aanbevolen tenzij je bouwt MySQL vanaf de bron buiten Thuisbrouwsel. Als je Homebrew gebruikt, blijf dan gewoon bij brew services . Of zeg het op een andere manier, als je Homebrew gebruikt, moet je dingen op de Homebrew-manier doen.



  1. Een SQL Server Agent-taak maken met T-SQL

  2. ORDER DOOR een gelijke waarde in MySQL

  3. Hoe u optimaal gebruik kunt maken van de commentaarfunctie in MySQL

  4. Laravel 5:een extra veld synchroniseren via pivot