Đầ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