Harap terima jawaban atas beberapa pertanyaan Anda sebelumnya, karena tampaknya beberapa dari jawaban itu adalah solusi yang benar - klik tanda centang yang diuraikan di sebelah kiri jawaban.
Shane Madden
Jawaban:
15
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.
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.
Jika jawabannya memecahkan masalah Anda, maka Anda harus mengklik tanda centang untuk menerimanya.
Zoredache
1
Ini akan menyimpan kata sandi sebagai teks biasa, sebuah praktik yang saya tidak ingin dari sudut pandang keamanan.
Giovanni
@Giovanni yakin, meskipun mysql_config_editor yang Anda sebutkan dalam jawaban Anda, sementara berguna tidak tersedia sampai Anda menjalankan 5.6.6. Masih ada distribusi hari ini yang memiliki versi yang lebih lama.
Zoredache
Tetapi bagaimana ini dilakukan pada Windows?
Wolfpack'08
9
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:
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.
Jadi apa adalah jawaban untuk pertanyaan ini kemudian?
Pierre.Vriens
0
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
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).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.
sumber
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:
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 :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: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:
Informasi lebih lanjut tentang utilitas dapat ditemukan di "mysql_config_editor - MySQL Configuration Utility" .
sumber
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.sumber
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 ....
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
sumber