Saya menggunakan klien baris perintah mysql dan saya tidak ingin perlu memberikan kata sandi setiap kali saya memulai klien. Apa saja pilihan saya?
Saya menggunakan klien baris perintah mysql dan saya tidak ingin perlu memberikan kata sandi setiap kali saya memulai klien. Apa saja pilihan saya?
Jawaban:
Buat file bernama .my.cnf
di direktori home Anda yang terlihat seperti ini. Pastikan hak akses filesystem diatur sedemikian sehingga hanya pengguna yang dapat membacanya (0600).
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
Karena Anda juga menandai pertanyaan saya mysqldump, Anda harus melihat pertanyaan ini.
Menggunakan mysqldump dalam pekerjaan cron tanpa kata sandi root
Pembaruan (2016-06-29) Jika Anda menjalankan mysql 5.6.6 atau lebih tinggi, Anda harus melihat alat mysql_config_editor yang memungkinkan Anda untuk menyimpan kredensial dalam file terenkripsi. Terima kasih kepada Giovanni karena menyebutkan ini padaku.
Anda dapat menggunakan mysql_config_editor
utilitas untuk menyimpan kredensial autentikasi dalam file jalur masuk terenkripsi yang bernama .mylogin.cnf
.
Untuk membuat set kredensial baru jalankan:
mysql_config_editor set --host=db.host.org --user=dbuser --password
dan masukkan kata sandi Anda saat diminta.
Ini akan menyimpan kredensial autentikasi Anda di client
jalur login default .
Anda dapat menyimpan beberapa kredensial autentikasi dengan menentukan --login-path
opsi yang berbeda :
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Secara default, mysql
klien membaca [client]
dan [mysql]
grup dari file opsi lain, sehingga membacanya dari file jalur login juga. Dengan --login-path
opsi, program klien juga membaca jalur masuk yang disebutkan dari file jalur masuk. Grup opsi membaca dari file opsi lain tetap sama. Pertimbangkan perintah ini:
mysql --login-path=db2
The mysql
klien membaca [client]
dan [mysql]
dari file pilihan lain, dan [client]
, [mysql]
, dan [mypath]
dari file path login.
Untuk mencetak semua informasi yang tersimpan dalam file konfigurasi jalankan:
mysql_config_editor print --all=true
Informasi lebih lanjut tentang utilitas dapat ditemukan di "mysql_config_editor - MySQL Configuration Utility" .
Kita tidak boleh berpura-pura bahwa .mylogin.cnf aman sama sekali karena saya dapat menggunakan my_print_defaults -s [use your login-path]
untuk membuat kata sandi itu muncul dalam teks biasa. Inilah sebabnya mengapa MariaDB tidak mendukung pendekatan 'keamanan karena ketidakjelasan' ini.
Ada cara lain, ortogonal dengan metode yang disebutkan di atas, tetapi bisa menjadi risiko keamanan jika orang lain menonton monitor Anda, ATAU jika Anda menyimpan riwayat Anda .
Namun demikian itu adalah pilihan, yang akan mencegah Anda dari diminta, dan salah satu yang saya gunakan dalam gambar buruh pelabuhan yang dibuang begitu saja ....
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Anda tidak akan diminta, Anda dapat mengatur alias sementara di shell jika Anda mau.
Gunakan dengan hati-hati.
mysql Ver 14.14 Distrib 5.5.61-38.13, untuk debian-linux-gnu (x86_64) menggunakan readline 5.1