Ketika saya mencoba menjalankan perintah berikut di MySQL dari dalam Terminal:
mysql -u $user -p$password -e "statement"
Eksekusi berfungsi seperti yang diharapkan, tetapi selalu mengeluarkan peringatan:
Peringatan: Menggunakan kata sandi pada antarmuka baris perintah dapat menjadi tidak aman.
Namun, saya harus melakukan pernyataan di atas menggunakan variabel lingkungan ( $password
) yang menyimpan kata sandi saya, karena saya ingin menjalankan perintah iteratif dalam skrip bash dari dalam Terminal, dan saya jelas tidak suka ide menunggu prompt muncul dan memaksa saya untuk memasukkan kata sandi saya 50 atau 100 kali dalam satu skrip. Jadi inilah pertanyaan saya:
Apakah layak untuk menekan peringatan? Perintah berfungsi dengan baik seperti yang saya nyatakan, tetapi jendela menjadi sangat berantakan ketika saya mengulang dan menjalankan perintah 50 atau 100 kali.
Haruskah saya mematuhi pesan peringatan dan TIDAK menulis kata sandi saya di skrip saya? Jika itu masalahnya, maka apakah saya harus mengetikkan kata sandi setiap kali diminta memaksa saya untuk melakukannya?
Berlari man mysql
tidak membantu, hanya mengatakan
--show-warnings
Penyebab peringatan akan ditampilkan setelah setiap pernyataan jika ada. Opsi ini berlaku untuk mode interaktif dan batch.
dan tidak menyebutkan apa pun tentang cara mematikan fungsionalitas, jika saya tidak melewatkan sesuatu.
Saya menggunakan OS X 10.9.1 Mavericks dan menggunakan MySQL 5.6 dari homebrew.
pexcept
. Ia dapat melakukan penyisipan terminal dan juga menangani umpan balik yang diberikan oleh perintah. Dengan cara ini Anda bisa melewatkan output verbose dan strip dari output aktual yang Anda inginkan :)
[client]
password=my_password
di~/.my.cnf
). Tentunya ia memiliki beberapa implikasi keamanan juga, tetapi setidaknya itu tidak dapat diakses oleh siapa saja yang dapat menjalankanps
, dan Anda memiliki kendali atas itu dengan izin file.