Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Homebrew MySQL 8.0.18 trên macOS 10.15 Catalina sẽ không chạy dưới dạng dịch vụ

Không bao giờ sử dụng sudo với lệnh brew . Nó sẽ làm hỏng quyền sở hữu của các tệp liên quan. Đang chạy brew vì root không được hỗ trợ. (Tôi đang nói về brew , không phải mysqld )

Trích dẫn từ tài liệu Homebrew

Cảnh báo từ mã nguồn của 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
}

Giải pháp

  1. Tắt dịch vụ và xóa trình nền tảng khởi chạy.

    # 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. Sửa quyền sở hữu các tệp liên quan đến 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. Kích hoạt lại dịch vụ MySQL.

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

Cập nhật :

Có vẻ một số bạn chưa quen với Homebrew. Tôi sẽ giải thích cách Homebrew quản lý các dịch vụ tại đây.

mysqld nghe tại cổng 3306 theo mặc định, đó không phải là một cổng đặc quyền. Vì vậy, không cần phải bắt đầu mysqld với gốc. systemd bắt đầu mysqld với quyền root trên Linux, nhưng macOS không phải là Linux.

Homebrew quản lý các dịch vụ với sự trợ giúp của launchd , là một loại systemd thay thế trên macOS. launchd bắt đầu một quy trình nền trước và quản lý nó cho bạn, giống như những gì systemd không.

brew services start/stop mysql sẽ đáp ứng đủ nhu cầu của bạn. Nó tạo ra một tệp launcd ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , bắt đầu mysqld với nó (do người dùng hiện tại điều hành).

/usr/local/mysql/support-files/mysql.server là một tập lệnh shell do MySQL mang lại để giúp bạn khởi động mysqld . Sử dụng nó trực tiếp không được khuyến khích trừ khi bạn xây dựng MySQL từ nguồn bên ngoài Tiếng quê hương. Nếu bạn đang sử dụng Homebrew, chỉ cần gắn bó với brew services . Hay nói theo cách khác, nếu bạn đang sử dụng Homebrew, bạn nên thực hiện mọi việc theo cách 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. phương thức đăng sự kiện fullCalendar lên MySQL

  2. Giải thích MySQL giải thích các phép toán kế hoạch thực thi, sự khác biệt giữa hai kế hoạch

  3. Trường varchar rộng gây ra lỗi chuyển đổi được yêu cầu không được hỗ trợ bằng cách sử dụng truy vấn mở với máy chủ được liên kết MySQL

  4. Cách đặt lại mật khẩu gốc MySQL

  5. Tôi có phải sử dụng mysql_real_escape_string nếu tôi ràng buộc các tham số không?