Kết nối tới MySQL/MariaDB không cần quyền sudo


Trên Linux, khi bạn thực hiện kết nối tới MySQL/MariaDB bằng command với user thông thường nếu bạn không sử dụng quyền sudo thì bạn sẽ gặp lỗi sau đây.

Như các bạn đã thấy trường hợp bạn không sử dụng quyền sudo thì sẽ gặp lỗi “Access denied for user …”. Còn khi sử dụng quyền sudo thì kết nối thành công.

Nguyên nhân là do trên Ubuntu, mặc định MySQL/MariaDB chỉ cho phép user root login thông qua unix_socket và nó đòi hỏi bạn phải có quyền sudo để thì mới login được.

Để xác nhận user login bằng phương thực gì thì các bạn tham khảo lệnh SQL sau:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Vậy để login bạn cần tạo user khác để login. Tuy nhiên bạn có thể thay đổi cơ chế login để user root login thông qua password như thông thường.

Sử dụng các lệnh SQL sau để thay đổi từ unix_socket sang login bằng password thông thường.

  1. Đầu tiên login bằng tài khoản root với quyền sudo
    sudo mysql -u root -p
  2. Sau đó thay đổi lại cơ chế login
    MariaDB []>use mysql;
    MariaDB [mysql]>update user set plugin='' where User='root';
    MariaDB [mysql]>flush privileges;
    MariaDB [mysql]>exit

Bây giờ bạn có thể đăng nhập bình thường mà không phải sử dụng quyền sudo.

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web