Nếu bạn chưa từng đặt mật khẩu root cho MySQL, máy chủ sẽ không yêu cầu mật khẩu khi kết nối với tư cách root. Tuy nhiên, điều này không an toàn. Khuyến khích bạn nên đặt mật khẩu ngay.
Cách đặt mật khẩu root lần đầu
Có hai cách:
1. Sử dụng lệnh mysql_secure_installation
Lệnh này sẽ hỏi mật khẩu cũ và mới, đồng thời thực hiện các cài đặt bảo mật khác như vô hiệu hóa cơ sở dữ liệu test.
Mở Terminal và gõ:
mysql_secure_installation
Trả lời các câu hỏi như sau:
- Change the root password? [Y/n] → y
- New password: → Nhập mật khẩu root MySQL mới
- Re-enter new password: → Nhập lại mật khẩu
- Remove anonymous users? [Y/n] → y
- Disallow root login remotely? [Y/n] → y
- Remove test database and access to it? [Y/n] → y
- Reload privilege tables now? [Y/n] → y
Lưu ý: Lỗi thường gặp là mật khẩu rỗng. Bạn phải chỉ định mật khẩu root khi kết nối:
mysqladmin -u root -pROOT-PASSWORD
2. Sử dụng lệnh mysqladmin
Mở Terminal và gõ:
mysqladmin -u root password newpass
Thay "newpass" bằng mật khẩu mới mong muốn. Sau đó nhập mật khẩu khi được yêu cầu.
Nếu gặp lỗi: mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)', hãy làm theo hướng dẫn khôi phục mật khẩu bên dưới.
Đặt lại mật khẩu MySQL khi quên
Quên mật khẩu root MySQL sau một thời gian là điều thường thấy. Bạn có thể đặt lại dễ dàng từ dòng lệnh miễn là biết mật khẩu root của hệ thống (macOS).
Quy trình thay đổi tùy thuộc vào phiên bản MySQL. Dưới đây là các bước trên Mac:
- Dừng MySQL Server: Vào System Preferences → MySQL → Stop MySQL Server. Hoặc dùng Terminal:
service mysql stop
- Khởi động server ở chế độ an toàn bỏ qua quyền: Trong Terminal:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
- Kết nối MySQL client: Mở Terminal mới, gõ:
mysql -u root
- Đặt mật khẩu root mới: Tùy phiên bản MySQL:
- MySQL 5.7.5 và cũ hơn:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; - MySQL 5.7.6 và mới hơn:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;
- MySQL 5.7.5 và cũ hơn:
- Dừng MySQL server:
killall mysqld
- Khởi động lại MySQL và kiểm tra: Khởi động bình thường và thử đăng nhập với mật khẩu mới.
Lưu ý quan trọng
MySQL có thể dùng không mật khẩu, nhưng vì lý do bảo mật, hãy đặt mật khẩu root. Nếu quên, hướng dẫn này giúp bạn khôi phục dễ dàng trên Mac.