Thiết lập, thay đổi và đặt lại mật khẩu gốc MySQL và MariaDB

theanh

Administrator
Nhân viên
Bài hướng dẫn này giải thích cách bạn có thể thiết lập, thay đổi và đặt lại (nếu bạn quên mật khẩu) mật khẩu gốc MySQL hoặc MariaDB. Tôi thường xuyên gặp các vấn đề như mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)'. Vì vậy, tôi nghĩ đã đến lúc nhắc bạn cách giải quyết các vấn đề liên quan đến mật khẩu MySQL. Nếu bạn chỉ đang tìm cách khắc phục nhanh cách đặt lại mật khẩu gốc MySQL, bạn có thể tìm thấy ở cuối bài hướng dẫn này. Bài hướng dẫn này tương thích với tất cả các bản phân phối Linux chính bao gồm CentOS, Debian, Fedora và Ubuntu.

Sử dụng lệnh mysqladmin để thay đổi mật khẩu gốc​

Phương pháp 1 - Thiết lập mật khẩu gốc lần đầu tiên​

Nếu bạn chưa bao giờ thiết lập mật khẩu gốc cho MySQL, máy chủ không yêu cầu mật khẩu để kết nối với tư cách là gốc. Để thiết lập mật khẩu root lần đầu tiên, hãy sử dụng lệnh mysqladmin tại dấu nhắc shell như sau:
Mã:
mysqladmin -u root password newpass
Nếu bạn muốn thay đổi (hoặc cập nhật) mật khẩu root thành mật khẩu mới 'newpass', thì bạn cần sử dụng lệnh sau:
Mã:
mysqladmin -u root -p password newpass
Mã:
Nhập mật khẩu:
Nếu bạn nhận được...
Mã:
mysqladmin: connect to server at 'localhost' failed[B]error: 'Access denied for user 'root'@'localhost' (using password: YES)'
thì hãy làm theo hướng dẫn bên dưới về cách khôi phục mật khẩu MySQL của bạn.

Từ 'password' trong ví dụ trên là một phần của lệnh, không thay thế từ đó bằng mật khẩu của bạn. Từ 'newpass' là mật khẩu mới.



Một giải pháp thay thế cho việc sử dụng lệnh mysqladmin khi thiết lập mật khẩu gốc MySQL hoặc MariaDB lần đầu tiên là sử dụng lệnh mysql_secure_installation. Lệnh này không chỉ yêu cầu mật khẩu gốc MySQL cũ và mới mà còn thực hiện một số thiết lập bảo mật khác như vô hiệu hóa cơ sở dữ liệu thử nghiệm.

Sau đây là cách sử dụng lệnh đó:
Mã:
mysql_secure_installation
Trả lời các câu hỏi như được hiển thị bên dưới:
Mã:
Bạn có thay đổi mật khẩu gốc không? [Y/n] sử dụng mysql;
mysql> cập nhật người dùng đặt mật khẩu=MẬT KHẨU("MẬT KHẨU-GỐC-MỚI") trong đó Người dùng='root';
mysql> xóa quyền;
mysql> thoát
MySQL 5.7.6 trở lên
Mã:
mysql> sử dụng mysql;
mysql> ĐẶT MẬT KHẨU CHO 'root'@'localhost'= MẬT KHẨU("newpass");
mysql> xóa quyền;
mysql> quit
Bước # 5: Dừng máy chủ MySQL:
Mã:
service mysql stop
Đầu ra:
Mã:
Dừng máy chủ cơ sở dữ liệu MySQL: mysqld
DỪNG máy chủ từ tệp pid /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: đã kết thúc

[1]+ Xong mysqld_safe --skip-grant-tables
Hoặc sử dụng lệnh này để dừng MySQL nếu lệnh trên không dừng được (lệnh nào hoạt động tùy thuộc vào phiên bản MySQL):
Mã:
killall mysqld
Đầu ra có thể khác nhau tùy theo bản phân phối Linux. Đừng lo lắng trừ khi nó báo lỗi. Khởi động máy chủ MySQL và kiểm tra:
Mã:
service mysql start
mysql -u root -p
 
Back
Bên trên