Đầu tiên bạn cần phải xác định hệ thống của bạn đang sử dụng là MySQL hay MariaDB. Bằng cách sử dụng câu lệnh
mysql --version
Với MySQL. Kết quả sẽ trông gần giống như
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
Còn với MariaDB
mysql Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1
Bước 1: Tiến hành ngừng dịch vụ MySQL (MariaDB) bằng câu lệnh
Với MySQL
sudo systemctl stop mysql
Với MariaDB
sudo systemctl stop mariadb
Kiểm tra nếu không báo lỗi gì thì services đã được dừng thành công
Bước 2: Khởi chạy lại Database Server mà bỏ qua việc kiểm tra quyền hạn bằng câu lệnh
sudo mysqld_safe --skip-grant-tables --skip-networking &
Bước 3: Đăng nhập vào user root của MySQL. Khi đó sẽ không đòi hỏi Password
mysql -u root
nạp lại bảng bằng câu lệnh
FLUSH PRIVILEGES;
Đặt lại Password cho user root
Với phiên bản MySQL 5.7.6 và mới hơn hoặc MariaDB 10.1.20 và mới hơn
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password mới';
Với các phiên bản cũ hơn
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password mới');
Nếu thấy báo Query OK, 0 rows affected (0.00 sec) là thành công
Cuối cùng gõ lệnh để thoát khỏi MySQL
Bước 4: Khởi động lại MySQL (MariaDB) bình thường
Kill tiến trình
Với MySQL
sudo kill `cat /var/run/mysqld/mysqld.pid`
Với MariaDB
sudo kill `/var/run/mariadb/mariadb.pid`
Nếu gặp lỗi ở bước này bạn chỉ cần reboot lại server là được
Khởi động lại services
Với MySQL
sudo systemctl start mysql
Với MariaDB
sudo systemctl start mariadb
Bước 5: Kiểm tra lại password mới bằng câu lệnh
mysql -u root -p
Sau đó nhập Password mới vừa đặt, thành công là được