Khi tôi thử chạy lệnh sau trên MySQL từ bên trong Terminal:
mysql -u $user -p$password -e "statement"
Việc thực thi hoạt động như mong đợi, nhưng nó luôn đưa ra cảnh báo:
Cảnh báo: Sử dụng mật khẩu trên giao diện dòng lệnh có thể không an toàn.
Tuy nhiên, tôi phải thực hiện câu lệnh ở trên bằng cách sử dụng biến môi trường ( $password
) lưu mật khẩu của mình, vì tôi muốn chạy lệnh lặp trong tập lệnh bash từ trong Terminal và tôi chắc chắn không thích ý tưởng chờ một dấu nhắc xuất hiện và buộc tôi nhập mật khẩu của mình 50 hoặc 100 lần trong một tập lệnh. Vì vậy, đây là câu hỏi của tôi:
Có khả thi để ngăn chặn cảnh báo? Lệnh hoạt động đúng như tôi đã nêu, nhưng cửa sổ trở nên khá lộn xộn khi tôi lặp lại và chạy lệnh 50 hoặc 100 lần.
Tôi có nên tuân theo thông điệp cảnh báo và KHÔNG viết mật khẩu trong tập lệnh của mình không? Nếu đó là trường hợp, thì tôi có phải nhập mật khẩu của mình mỗi lần nhắc nhở buộc tôi phải làm như vậy không?
Chạy man mysql
không giúp, chỉ nói
--show-warnings
Nguyên nhân cảnh báo sẽ được hiển thị sau mỗi tuyên bố nếu có. Tùy chọn này áp dụng cho chế độ tương tác và hàng loạt.
và không đề cập gì về cách tắt chức năng, nếu tôi không thiếu thứ gì.
Tôi đang dùng OS X 10.9.1 Mavericks và sử dụng MySQL 5.6 từ homebrew.
pexcept
. Nó có thể thực hiện chèn đầu cuối và cũng xử lý phản hồi mà lệnh đưa ra. Bằng cách này, bạn có thể bỏ qua đầu ra dài dòng và dải đầu ra thực tế mà bạn muốn :)
[client]
password=my_password
in~/.my.cnf
). Chắc chắn nó cũng có một số ý nghĩa bảo mật, nhưng ít nhất nó không thể truy cập được đối với bất kỳ ai có thể chạyps
và bạn có quyền kiểm soát nó với quyền truy cập tệp.