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.cnfdi 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_editorutilitas 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 clientjalur login default .
Anda dapat menyimpan beberapa kredensial autentikasi dengan menentukan --login-pathopsi yang berbeda :
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Secara default, mysqlklien membaca [client]dan [mysql]grup dari file opsi lain, sehingga membacanya dari file jalur login juga. Dengan --login-pathopsi, 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 mysqlklien 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