Khác với những version trước đây, MariaDB 10.4 bản ổn định có thêm nhiều cải tiến. Một trong những khác biệt rõ ràng nhất trong MariaDB 10.4 mà bạn có thể dễ dàng kiểm tra đó là truy cập vào database bằng user root mà không cần đến mật khẩu. Vậy nếu trong trường hợp bạn vẫn muốn đặt password cho user root của MariaDB thì phải làm như nào? Cùng đọc bài viết để tìm hiểu nhé!

Tổng quan
MariaDB 10.4 có khả năng sử dụng nhiều hơn một plugin xác thực cho mỗi tài khoản. Khi cài đặt MariaDB, mặc định sẽ tạo ra 1 root@localhost user và cũng sẽ có 2 plugin xác thực cho user root được bật mặc định là unix_socket và mysql_native_password
unix_socket cho phép root@localhost user đăng nhập mà không cần mật khẩu thông qua local Unix socket file được xác định bởi socket biến hệ thống, miễn là root user của OS cũng có thể đăng nhập.
mysql_native_password được khuyến khích sử dụng khi xác thực thất bại với unix_socket. Plugin này sử dụng password để xác thực nên bạn sẽ cần SET PASSWORD.
Tất cả user, password, privileges được lưu trữ trong bảng mysql.global_priv. Bảng mysql.user vẫn tồn tại với đủ các cột như trước nhưng bạn không thể thực hiện các thao tác chỉnh sửa trên bảng.
MariaDB hỗ trợ thiết lập thời gian hết hạn password của người dùng.
Theo mặc định plugin unix_socket sẽ được sử dụng do đó bạn có thể trực tiếp truy cập vào database mà không cần password. Bạn có thể thử sử dụng mysql -u root -p và nhập vào password sai vẫn có thể truy cập bình thường.
Reset password
Truy cập vào database
mysql -u root
Đặt mật khẩu
SET PASSWORD FOR 'user_name'@'hostname' = PASSWORD('newpass');
Ví dụ: Đặt lại password cho root MariaDB user
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
Tắt plugin unix_socket trong file /etc/my.cnf.d/server.cnf
[mariadb]
...
unix_socket=OFF
hoặc
[mariadb]
...
disable_unix_socket
Restart MariaDB để nhận cấu hình mới
systemctl restart mariadb
Kiểm tra hoạt động của password vừa tạo
mysql -u root -p
Vì bạn đã tắt plugin unix_socket ở trên nên ở bước kiểm tra này nếu không nhập chính xác password bạn sẽ không thể truy cập vào database.