sql >> Database teknologi >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 på macOS 10.15 Catalina kører ikke som service

Brug aldrig sudo med kommandoen brew . Det vil ødelægge ejerskabet af relaterede filer. Kører brew da root ikke understøttes. (Jeg taler om brew , ikke mysqld )

Citat fra Homebrew doc

Advarsler fra kildekoden til <381> brygge

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øsninger

  1. Deaktiver tjenesten og fjern 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. Ret ejerskab af homebrew-relaterede 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. Genaktiver MySQL-tjenesten.

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

Opdater :

Det lader til, at nogle af jer ikke er bekendt med Homebrew. Jeg vil forklare, hvordan Homebrew administrerer tjenester her.

mysqld lytter ved port 3306 som standard, hvilket ikke er en privilegeret port. Så der er ingen grund til at starte mysqld med rod. systemd starter mysqld med root på Linux, men macOS er ikke Linux.

Homebrew administrerer tjenester ved hjælp af launchd , som er en slags systemd alternativ på macOS. lanceret starter en forgrundsproces og administrerer den for dig, ligesom hvad systemd gør.

brygtjenester start/stop mysql vil være tilstrækkeligt til dit behov. Det opretter en lanceret fil ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , starter mysqld med den (køres af nuværende bruger).

/usr/local/mysql/support-files/mysql.server er et shell-script bragt af MySQL for at hjælpe dig med at starte mysqld . Det anbefales ikke at bruge det direkte medmindre du bygger MySQL fra kilden udenfor Hjemmebryg. Hvis du bruger Homebrew, skal du bare holde dig til brygtjenester . Eller sig det på en anden måde, hvis du bruger Homebrew, bør du gøre tingene på Homebrew-måden.



  1. SQL OPDATERING

  2. Brug af konfigurationstabeller til at definere den faktiske arbejdsgang

  3. PHP PDO-relateret:Opdater SQL-sætning, der ikke opdaterer indholdet af databasen

  4. Advarsel:mysqli_query():Kunne ikke hente mysqli