Cách đặt lại root password MariaDB hoặc MySQL

Việc quên mật khẩu rất hay xảy ra, điều này thường làm nhiều người hoang mang. Nếu bạn quên hoặc mất root password MariaDB hoặc MySQL thì vẫn có thể truy cập và đặt lại mật khẩu nếu bạn có quyền truy cập vào máy chủ và một tài khoản người dùng có sudo. Hướng dẫn này sẽ hướng dẫn cách đặt lại mật khẩu root cho các phiên bản cũ và mới của MySQL và MariaDB.

Yêu cầu tiên quyết khi thay đổi root password MariaDB/MySQL

Để khôi phục lại root password MariaDB/MySQL, bạn cần:

  • Truy cập vào máy chủ Linux đang chạy MySQL hoặc MariaDB với một người dùng sudo.

Các bước khôi phục lại root password MariaDB/MySQL

Bước 1 - Xác định phiên bản cơ sở dữ liệu

Hầu hết các bản phân phối Linux hiện đại đi kèm với MySQL hoặc MariaDB, một phiên bản thay thế phổ biến hoàn toàn tương thích với MySQL. Tùy thuộc vào cơ sở dữ liệu được sử dụng và phiên bản của nó, bạn sẽ cần sử dụng các lệnh khác nhau để khôi phục mật khẩu root.

Bạn có thể kiểm tra phiên bản của mình bằng lệnh sau:

$ mysql --version

Bạn sẽ thấy một đầu ra như sau với MySQL:

MySQL output
mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

Hoặc đầu ra như sau với MariaDB:

MariaDB output
mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

Ghi chú loại cơ sở dữ liệu và phiên bản đang chạy của bạn, vì bạn sẽ sử dụng chúng sau này. Tiếp theo, bạn cần dừng cơ sở dữ liệu để bạn có thể truy cập nó bằng cách thủ công.

Bước 2 - Dừng dịch vụ cơ sở dữ liệu

Để thay đổi mật khẩu root, bạn phải tắt dịch vụ cơ sở dữ liệu trước. Bạn có thể làm điều đó với MySQL bằng cách sử dụng lệnh sau:

$ sudo systemctl stop mysql

Và sử dụng lệnh sau cho MariaDB:

$ sudo systemctl stop mariadb

Sau khi dịch vụ cơ sở dữ liệu dừng lại, bạn sẽ truy cập vào nó bằng cách thủ công để đặt lại mật khẩu root.

Bước 3 - Khởi động lại dịch vụ cơ sở dữ liệu mà không kiểm tra quyền truy cập

Nếu bạn chạy MySQL và MariaDB mà không tải thông tin về đặc quyền người dùng, điều đó sẽ cho phép bạn truy cập vào dòng lệnh cơ sở dữ liệu với quyền root mà không cần nhập mật khẩu. Điều này sẽ cho phép bạn truy cập vào cơ sở dữ liệu mà không biết mật khẩu.

Để làm điều này, bạn cần dừng việc tải các bảng cấp quyền của cơ sở dữ liệu, nơi lưu trữ thông tin về đặc quyền người dùng. Vì đây là một rủi ro về bảo mật nhất định, bạn cũng nên bỏ qua mạng để ngăn các khách hàng khác kết nối.

Khởi động cơ sở dữ liệu mà không tải các bảng cấp quyền hoặc bật chế độ mạng:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Dấu và (&) ở cuối lệnh này sẽ khiến quá trình này chạy ở nền để bạn có thể tiếp tục sử dụng terminal của bạn.

Bây giờ bạn có thể kết nối vào cơ sở dữ liệu với tư cách người dùng root, mà không cần nhập mật khẩu.

$ mysql -u root

Ngay lập tức, bạn sẽ thấy một dấu nhắc dòng lệnh của cơ sở dữ liệu.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Bây giờ bạn đã có quyền truy cập root, bạn có thể thay đổi mật khẩu root.

Bước 4 - Thay đổi mật khẩu root password MariaDB/MySQL

Một cách đơn giản để thay đổi mật khẩu root cho các phiên bản hiện đại của MySQL là sử dụng lệnh ALTER USER. Tuy nhiên, lệnh này sẽ không hoạt động ngay bây giờ vì các bảng cấp quyền chưa được tải.

Hãy cho máy chủ cơ sở dữ liệu biết để tải lại các bảng cấp quyền bằng cách sử dụng lệnh FLUSH PRIVILEGES.

mysql&gt FLUSH PRIVILEGES;

Bây giờ chúng ta có thể thực sự thay đổi mật khẩu root. Đối với MySQL 5.7.6 trở lên cũng như MariaDB 10.1.20 trở lên, sử dụng lệnh sau.

mysql&gt ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Đối với MySQL 5.7.5 và cũ hơn cũng như MariaDB 10.1.20 và cũ hơn, sử dụng:

mysql&gt SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

Hãy đảm bảo thay thế new_password bằng mật khẩu mới mà bạn chọn.

Lưu ý: Nếu lệnh ALTER USER không hoạt động, thì thường chỉ ra một vấn đề lớn hơn. Tuy nhiên, bạn có thể thử sử dụng UPDATE ... SET để đặt lại mật khẩu root thay vì vậy.

mysql&gt UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

Hãy nhớ tải lại các bảng cấp quyền sau đây.

Trong cả hai trường hợp, bạn sẽ thấy xác nhận rằng lệnh đã được thực hiện thành công.

Output
Query OK, 0 rows affected (0.00 sec)

Mật khẩu đã được thay đổi, vì vậy bạn có thể dừng phiên bản cơ sở dữ liệu được thực hiện thủ công và khởi động lại nó như trước đây.

Bước 5 - Khởi động lại dịch vụ cơ sở dữ liệu bình thường

Đầu tiên, dừng phiên bản cơ sở dữ liệu mà bạn đã khởi động thủ công trong Bước Lệnh này tìm kiếm PID, hoặc ID quá trình, của quá trình MySQL hoặc MariaDB và gửi SIGTERM để yêu cầu nó thoát một cách trơn tru sau khi thực hiện các hoạt động dọn dẹp. Bạn có thể tìm hiểu thêm trong hướng dẫn quản lý quá trình Linux này.

Đối với MySQL, sử dụng lệnh sau:

$ sudo kill `cat /var/run/mysqld/mysqld.pid`

Đối với MariaDB, sử dụng lệnh sau:

$ sudo kill `/var/run/mariadb/mariadb.pid`

Tiếp theo, khởi động lại dịch vụ bằng cách sử dụng systemctl.

Đối với MySQL, sử dụng lệnh sau:

$ sudo systemctl start mysql

Đối với MariaDB, sử dụng lệnh sau:

$ sudo systemctl start mariadb

Bây giờ bạn có thể xác nhận rằng mật khẩu mới đã được áp dụng đúng bằng cách chạy lệnh sau.

$ mysql -u root -p

Lệnh này bây giờ sẽ yêu cầu nhập mật khẩu mới đã được gán. Nhập nó và bạn sẽ có quyền truy cập vào dấu nhắc cơ sở dữ liệu như mong đợi.

Bây giờ bạn đã khôi phục quyền truy cập quản trị cho máy chủ MySQL hoặc MariaDB. Đảm bảo root password MariaDB/MySQL mới mà bạn chọn đủ mạnh và an toàn, hãy lưu nó ở một nơi mà bạn có thể xem lại khi cần.

Mọi người cũng tìm kiếm: mariadb root password, password root mysql, root password, root account password mysql, mysql ver 15.1.

Các gói dịch vụ Cloud VPS của KDATA mang đến cho bạn nhiều lựa chọn về hiệu suất cũng như khả năng lưu trữ, mọi nhu cầu về doanh nghiệp đều được đáp ứng. KDATA đảm bảo khả năng uptime lên đến 99,99%, toàn quyền quản trị và free backup hằng ngày. Tham khảo ngay các gói dịch vụ Cloud VPS:

https://kdata.vn/cloud-vps

👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất