Hướng dẫn how do i connect to sudo in mysql? - làm cách nào để kết nối với sudo trong mysql?

Bạn có thể sử dụng cùng một người dùng gốc hoặc người dùng mới và xóa các đặc quyền sudo. Ví dụ dưới đây cho thấy cách xóa kết nối bằng root, không có sudo.

Kết nối với MY-SQL bằng sudo

sudo mysql -u root

Xóa người dùng gốc hiện tại khỏi bảng người dùng

DROP USER 'root'@'localhost';

Tạo người dùng gốc mới (bạn có thể tạo người dùng khác nếu cần)

CREATE USER 'root'@'%' IDENTIFIED BY '';

Cấp quyền cho người dùng mới (root)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

Đặc quyền tuôn ra, để các bảng tài trợ được tải lại ngay lập tức. (Tại sao chúng ta cần phải xóa các đặc quyền?)

FLUSH PRIVILEGES;

Bây giờ tất cả đều tốt. Chỉ trong trường hợp, kiểm tra xem người dùng gốc mới có được tạo hay không.

SELECT User,Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

Thoát khỏi MySQL. (Nhấn Ctrl + Z). Kết nối với MySQL mà không cần sudo

mysql -u root

Hy vọng điều này sẽ giúp ích!

Tôi đang sử dụng Ubuntu 20.04 và cài đặt phiên bản mặc định của MySQL. Nhưng tôi dường như không thể đăng nhập như root mà không sử dụng sudo. Đây có phải là một hạn chế trên phiên bản mới hơn? Tôi chắc chắn rằng nó không giống như thế này trên các phiên bản trước của Ubuntu - 14.04, 12.04, v.v.

mysql --user=root -p
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

.

sudo mysql --user=root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 80
Server version: 8.0.22-0ubuntu0.20.04.3 (Ubuntu)

hỏi ngày 2 tháng 2 năm 2021 lúc 12:32Feb 2, 2021 at 12:32

Đây là chức năng có chủ ý. Người duy nhất nên được phép kết nối với máy chủ MySQL vì

DROP USER 'root'@'localhost';
8 nên là chủ sở hữu của máy chủ. Không ai khác. Đương nhiên, điều này không tạo ra vấn đề cho những người muốn có một tài khoản duy nhất có thể làm bất cứ điều gì theo nghĩa đen với ví dụ MySQL, chẳng hạn như nhà phát triển và quản trị viên máy chủ cuối tuần.

Những gì tôi muốn đề xuất là: Tạo một tài khoản trong MySQL có quyền nâng cao mà chỉ bạn sử dụng. Nếu cài đặt MySQL này cũng được sử dụng bởi các ứng dụng và trang web, hãy tạo tài khoản riêng lẻ cho từng tài khoản đó, chỉ cấp các quyền đầy đủ cho cơ sở dữ liệu mà họ cần.

Đây là cách bạn có thể tạo các tài khoản nâng cao và bình thường trong MySQL:

  1. Đăng nhập vào MySQL dưới dạng

    DROP USER 'root'@'localhost';
    
    8

  2. Tạo người dùng quản trị viên mới:

    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'SuperSecretPassword!123';
    GRANT ALL ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
    

    Nếu bạn sẽ kết nối với MySQL từ bên ngoài máy chủ, thì hãy làm điều này:

    DROP USER 'root'@'localhost';
    
    0
  3. Tạo các tài khoản dành riêng cho ứng dụng (ví dụ: WordPress):

    DROP USER 'root'@'localhost';
    
    1

    Làm điều này cho mỗi ứng dụng, đảm bảo họ không thể truy cập cơ sở dữ liệu của nhau.

  4. Đặc quyền tuôn ra để đảm bảo mọi thứ được đặt:

    FLUSH PRIVILEGES;
    

Hy vọng điều này sẽ giúp 👍🏻

Đã trả lời ngày 2 tháng 2 năm 2021 lúc 12:57Feb 2, 2021 at 12:57

Bạn chỉ có thể kết nối với tài khoản gốc cho MySQL và Mariadb nếu bạn đã đăng nhập vào hệ thống với tư cách là người dùng gốc hoặc bằng cách sử dụng sudo. Nếu không, bạn sẽ nhận được lỗi bị từ chối truy cập ngay cả khi bạn nhập đúng mật khẩu cho tài khoản MySQL gốc của mình.

Hướng dẫn how do i connect to sudo in mysql? - làm cách nào để kết nối với sudo trong mysql?

DROP USER 'root'@'localhost';
3

Các bước để kết nối với tài khoản Root MySQL hoặc MariaDB từ người dùng bình thường:

  1. Kết nối với MySQL / MariaDB với tư cách là Root hoặc tài khoản người dùng quản trị khác.

    DROP USER 'root'@'localhost';
    
    4

  2. Định cấu hình người dùng gốc để sử dụng plugin xác thực mysql_native_password.

    DROP USER 'root'@'localhost';
    
    5

    Thay đổi localhost và mật khẩu phù hợp.

  3. Tải lại các bảng cấp cho máy chủ MySQL / Mariadb.

    DROP USER 'root'@'localhost';
    
    6

  4. Đăng nhập lại vào tài khoản MySQL / Mariadb từ tài khoản hệ thống bình thường để kiểm tra.

    DROP USER 'root'@'localhost';
    
    7

Hướng dẫn how do i connect to sudo in mysql? - làm cách nào để kết nối với sudo trong mysql?

Thảo luận về bài viết:

Nhận xét ẩn danh. Đăng nhập không bắt buộc.

Làm cách nào để mở sudo trong mysql?

Cách tạo người dùng MySQL mới..
Trước khi bạn có thể tạo người dùng MySQL mới, bạn cần mở cửa sổ đầu cuối và khởi chạy vỏ MySQL dưới dạng người dùng gốc. Để làm như vậy, hãy nhập lệnh sau: sudo mysql, root
Nhập mật khẩu gốc cho tài khoản này và nhấn Enter. ....
Tiếp theo, tạo người dùng MySQL mới với:.

Làm thế nào để bạn kết nối với mysql với tư cách là root?

Đây là trường hợp nếu bạn khởi tạo thư mục dữ liệu bằng cách sử dụng MySQLD-Initialize-Informent ...
Kết nối với máy chủ dưới dạng root bằng cách sử dụng mật khẩu: $> mysql -u root - -skip -password ..
Gán mật khẩu: mysql> thay đổi người dùng 'root'@'localhost' được xác định bởi 'root-password' ;.

Làm cách nào để kết nối với kết nối MySQL?

Để kết nối với máy chủ MySQL:..
Xác định vị trí máy khách dòng lệnh MySQL.....
Chạy khách hàng.....
Nhập mật khẩu của bạn.....
Nhận một danh sách các cơ sở dữ liệu.....
Tạo một cơ sở dữ liệu.....
Chọn cơ sở dữ liệu bạn muốn sử dụng.....
Tạo một bảng và chèn dữ liệu.....
Hoàn thành làm việc với máy khách dòng lệnh MySQL ..

Làm cách nào để kích hoạt người dùng gốc trong mysql?

Để cho phép các kết nối từ xa đến tài khoản gốc trong MySQL, bạn nên thực thi lệnh mysql_secure_installation.Thông thường bạn chạy lệnh này khi lần đầu tiên thiết lập MySQL, nhưng nó có thể được chạy lại tại bất kỳ điểm nào nếu bạn cần đặt lại mật khẩu tài khoản gốc hoặc cho phép các kết nối từ xa vào tài khoản.execute the mysql_secure_installation command. Normally you run this command when first setting up MySQL, but it can be run again at any point if you need to reset the root account password or allow remote connections to the account.