Mysql
 sql >> база данни >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 на macOS 10.15 Catalina няма да работи като услуга

Никога не използвайте sudo с команда brew . Това ще разруши собствеността върху свързаните файлове. Изпълнява се brew тъй като root не се поддържа. (Говоря за brew , а не mysqld )

Цитат от Homebrew doc

Предупреждения от -sh38w>code. варя

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
}

Решения

  1. Деактивирайте услугата и премахнете 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. Поправете собствеността върху файлове, свързани с 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. Активирайте отново услугата MySQL.

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

Актуализиране :

Изглежда някои от вас не са запознати с Homebrew. Тук ще обясня как Homebrew управлява услугите.

mysqld слуша на порт 3306 по подразбиране, което не е привилегирован порт. Така че няма нужда да стартирате mysqld с корен. systemd стартира mysqld с root на Linux, но macOS не е Linux.

Homebrew управлява услуги с помощта на launchd , което е вид systemd алтернатива на macOS. launchd стартира процес на преден план и го управлява вместо вас, точно като този systemd прави.

brew услуги стартират/спират mysql ще задоволи нуждите ви. Той създава стартиран файл ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , стартира mysqld с него (изпълняван от текущ потребител).

/usr/local/mysql/support-files/mysql.server е шел скрипт, предоставен от MySQL, за да ви помогне да стартирате mysqld . Не се препоръчва директното му използване,освен ако изграждате MySQL от източник вън Домашно пиво. Ако използвате Homebrew, просто се придържайте към услугите за варене . Или го кажете по друг начин, ако използвате Homebrew, трябва да правите нещата по начина на 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. Пакетен файл за свързване на mysql и изпълнение на команди

  2. MySQL, обединяващ еквивалент за празни стойности?

  3. Филтриране на търсене с PHP/MySQL

  4. Функция MySQL EXP() – Връщане на e, повдигнато до степен на x

  5. Laravel валидира уникален, ако идентификаторът е същият