sql >> Databáze >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 na macOS 10.15 Catalina nebude fungovat jako služba

Nikdy nepoužívejte sudo pomocí příkazu brew . Zničí vlastnictví souvisejících souborů. Spuštění brew protože root není podporován. (Mluvím o brew , nikoli mysqld )

Citace z Homebrew doc

Upozornění od zdrojový kód 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
}

Řešení

  1. Zakažte službu a odeberte 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. Opravit vlastnictví souborů souvisejících s 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. Znovu povolte službu MySQL.

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

Aktualizovat :

Zdá se, že někteří z vás neznají homebrew. Zde vysvětlím, jak Homebrew spravuje služby.

mysqld naslouchá na portu 3306 ve výchozím nastavení, což není privilegovaný port. Není tedy třeba spouštět mysqld s kořenem. systemd spustí mysqld s rootem na Linuxu, ale macOS není Linux.

Homebrew spravuje služby pomocí launchd , což je druh systemd alternativa na macOS. launchd spustí proces na popředí a spravuje ho za vás, stejně jako systemd ano.

brew services start/stop mysql bude stačit vaší potřebě. Vytvoří spuštěný soubor ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , spustí mysqld s ním (spuštěno aktuálním uživatelem).

/usr/local/mysql/support-files/mysql.server je skript shellu, který přináší MySQL, aby vám pomohl spustit mysqld . Přímé použití se nedoporučuje pokud sestavujete MySQL ze zdroje mimo Homebrew. Pokud používáte Homebrew, zůstaňte u brew services . Nebo to řekněte jinak, pokud používáte Homebrew, měli byste dělat věci Homebrew způsobem.



  1. 32bitový Excel a 64bitový SQL Server

  2. Jak funguje funkce CHARINDEX() v SQL Server (T-SQL)

  3. Čísla řádků s nedeterministickým pořadím

  4. Časový rozdíl SQL mezi dvěma daty má za následek hh:mm:ss