Apakah ada cara untuk memasukkan kata sandi pengguna DB ke alat baris perintah mysqladmin?

103

Saat ini saya menggunakan yang berikut tetapi SELALU meminta saya untuk mengetik sandi secara manual. Apakah ada cara untuk meneruskannya di baris perintah saat meluncurkan executable?

mysqladmin processlist -u root -p
Ethan Allen
sumber
4
Set MYSQL_PWD di lingkungan ( export MYSQL_PWD=muhpassword) dan jalankan perintah Anda tanpa -p. Lihat Variabel Lingkungan Program MySQL . Terlepas dari peringatan mengerikan di manual , ini agak aman . Kecuali jika Anda memulai warez aneh di shell yang sama yang mungkin mengganggu lingkungan Anda dan mengirimkannya ke darkaspirator.cc.
David Tonhofer

Jawaban:

190

Baru saja menemukan jawabannya ....

mysqladmin processlist -u root -pYOURPASSWORDHERE

Tidak ada spasi antara kata sandi Anda dan -p

Ethan Allen
sumber
14
tanda kutip juga diperbolehkan jika kata sandi mengandung spasi, seperti pada:-p'YOURPASSWORD HERE'
Vigintas Labakojis
40
Wow ... sangat intuitif ... Jarak antara -h localhostdan -u roottetapi tidak -pPASSWORD. Pemrogram klasik membuat segalanya lebih sulit dari yang diperlukan.
Kolob Canyon
4
@KolobCanyon Anda dapat menghilangkan ruang antara -u dan root, -urootberfungsi dengan baik
Peter Ajtai
11
Peringatan: ini dianggap tidak aman: dev.mysql.com/doc/mysql-security-excerpt/5.7/en/…
neverendingqs
3
@KolobCanyon: Bagaimana jika kata sandi Anda dimulai dengan spasi? ;) Pemrogram tidak dapat memutuskan apakah spasi memisahkan opsi dan nilainya atau merupakan karakter pertama dari kata sandi…
Stéphane
43

Mencoba:

--password=PasswordTextHere 
ge0man
sumber
Berguna ketika Anda perlu memasukkan kata sandi "kosong" (untuk tujuan pengujian, tentu saja).
Ivo Pereira
ini juga tampaknya menjadi satu-satunya pilihan untuk meneruskan kata sandi kosong di baris perintah (pada contoh kotak pasir misalnya)
penCsharpener
10

Ini harus bekerja: mysql -uroot -p'password'

Jika Anda mencoba mengotomatiskan solusi mysql, Anda dapat menggunakan kata sandi dari variabel:

mysql_pass=$(sudo grep -oP "temporary password is generated for root@localhost: \K(.*)" /var/log/mysqld.log)

mysql -uroot -p"$mysql_pass" < somescript.sql

3lvinaz.dll
sumber