Tôi vẫn cho rằng MySQL không bận tâm đến việc làm xáo trộn mật khẩu trên dòng lệnh và trong nhật ký. Và đó là lý do duy nhất tôi thêm câu trả lời thay vì chỉ nhận xét về câu trả lời @Gilles.
Vì vậy, tất nhiên, bạn có thể chỉ đăng nhập vào MySQL với tư cách quản trị viên và đặt mật khẩu mới cho người dùng blayo của bạn, như @patrix đề xuất.
Tuy nhiên, cách tiêu chuẩn để thực hiện điều đó là sử dụng hàm password () của MySQL, lấy mật khẩu văn bản gốc làm đối số (nghiêm túc?).
Nếu bạn làm điều đó, bạn để lại phiên bản gốc của mật khẩu người dùng MySQL của bạn trong lịch sử bash và trong nhật ký MySQL của bạn, để dễ dàng truy xuất sau này bởi bất cứ ai quản lý để có quyền truy cập vào các tệp nhật ký đó.
Sẽ không tốt hơn nếu có một tiện ích nhỏ sẽ nhắc mật khẩu, mà không lặp lại nó trên màn hình hoặc vào nhật ký của bạn, sau đó cung cấp cho bạn hàm băm tương thích với MySQL?
Vì vậy, sửa đổi câu trả lời của @ Gilles chỉ một chút, làm thế nào về một tập lệnh shell nhỏ sử dụng Python, như sau. Bạn có thể dễ dàng sửa đổi điều này để chạy một câu lệnh SQL dựa trên cơ sở dữ liệu MySQL của bạn để đặt mật khẩu cùng một lúc. Nhưng ngay cả khi không đi xa đến thế, chỉ cần sao chép và dán băm kết quả vào câu lệnh SQL để cập nhật bảng người dùng:
#!/bin/bash
mysqlpwd=$(/usr/bin/python -c 'from hashlib import sha1; import getpass; print "*" + sha1(sha1(getpass.getpass("New MySQL Password:")).digest()).hexdigest()')
echo $mysqlpwd
blayo
? Điều đó chắc chắn nhanh hơn so với việc chạy qua hàng nghìn tỷ kết hợp nhân vật có thể để tìm đúng.