Bạn có thể sử dụng các tệp init. Kiểm tra tài liệu chính thức của MySQL về Cách đặt lại mật khẩu gốc (bao gồm cả nhận xét cho các giải pháp thay thế).
Vì vậy, về cơ bản bằng cách sử dụng tệp init, bạn có thể thêm bất kỳ truy vấn SQL nào bạn cần để sửa quyền truy cập của mình (chẳng hạn như GRAND
, CREATE
, FLUSH PRIVILEGES
, v.v.) vào tệp init (bất kỳ tệp nào).
Đây là ví dụ của tôi về việc khôi phục tài khoản gốc:
echo "CREATE USER 'root'@'localhost' IDENTIFIED BY 'root';" > your_init_file.sql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;" >> your_init_file.sql
echo "FLUSH PRIVILEGES;" >> your_init_file.sql
và sau khi tạo tệp, bạn có thể chạy:
killall mysqld
mysqld_safe --init-file=$PWD/your_init_file.sql
sau đó để kiểm tra xem điều này có hiệu quả hay không, hãy nhấn Ctrl + Z và nhập:bg
để chạy quy trình từ nền trước vào nền sau, sau đó xác minh quyền truy cập của bạn bằng cách:
mysql -u root -proot
mysql> show grants;
+-------------------------------------------------------------------------------------------------------------+
| Grants for [email protected] |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' |
Xem thêm:
- Không có mật khẩu - Không có vấn đề gì tại Mọi thứ MySQL
- Lỗi # 28331:Thông báo lỗi không rõ ràng khi CREATE USER không thành công do trùng lặp khóa