sql >> データベース >  >> RDS >> Mysql

macOS10.15でのHomebrewMySQL8.0.18カタリナはサービスとして実行されません

    sudoは絶対に使用しないでください コマンドbrewを使用 。関連ファイルの所有権を台無しにします。 brewを実行しています ルートはサポートされていないため。 (私はbrewについて話している 、mysqldではありません )

    Homebrewドキュメントからの引用

    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
    }
    

    ソリューション

    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. 自作関連ファイルの所有権を修正する

      # 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がサービスを管理する方法について説明します。

    mysqld ポート3306でリッスンします デフォルトでは、これは特権ポートではありません。したがって、mysqldを開始する必要はありません。 ルート付き。 systemd mysqldを開始します Linuxではrootですが、macOSはLinuxではありません。

    Homebrewはlaunchdの助けを借りてサービスを管理します 、これは一種のsystemd macOSの代替。 launchd systemdと同じように、フォアグラウンドプロセスを開始し、それを管理します

    brew services start/stop mysql あなたの必要性で十分でしょう。起動ファイル~/Library/LaunchAgents/homebrew.mxcl.mysql.plistを作成します 、mysqldを開始します それを使って(現在のユーザーが実行します)。

    /usr/local/mysql/support-files/mysql.server mysqldの起動を支援するためにMySQLによってもたらされたシェルスクリプトです。 。 を除いて、直接使用することはお勧めしません 外部のソースからMySQLをビルドします 自作。 Homebrewを使用している場合は、brew servicesを使用してください。 。または、別の言い方をすれば、Homebrewを使用している場合は、Homebrewの方法で行う必要があります。



    1. MariaDBでのTIMEDIFF()のしくみ

    2. Laravelのセットで見つけますか?例

    3. SQLクエリの最適化:パフォーマンスを向上させるためのベストプラクティス

    4. 顧客の複数の住所のjsonbとjsonb[]