Apakah mungkin untuk mengkonfigurasi kata sandi per basis data atau per host di .my.cnf


47

Saya memiliki yang berikut di blog saya ~/.my.cnf

[client]
password="somepass"

tapi ini bukan kata sandi yang saya gunakan untuk setiap pengguna @ host / basis data yang saya sambungkan. Apakah ada cara untuk menentukan dalam konfigurasi kata sandi yang berbeda untuk hal-hal yang berbeda sehingga saya tidak perlu mengetiknya?


[Pengguna @DTest menjawab pertanyaan seperti ini di bulan Mei tahun ini] [1] [1]: dba.stackexchange.com/questions/2820/…
— RolandoMySQLDBA

Jawaban:


64

Seperti yang saya jawab di sini , Anda dapat menambahkan bagian untuk setiap pengguna / host / db yang Anda hubungkan menggunakan sintaks di ~/.my.cnf:

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com

Setelah ini ada di pengguna .my.cnfAnda, Anda dapat menggunakannya dengan melakukan ini pada baris perintah:

$ mysql --defaults-group-suffix=host1

Seperti yang dijanjikan, +1 !!!
— RolandoMySQLDBA

Bisakah Anda jelaskan --defaults-group-suffix ini?
— Otheus

Bagus. Butuh beberapa saat untuk mencari tahu sisanya dari sini tetapi untuk backup mysql Cron, sekarang saya dapat menggunakan mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $ (echo $ (date '+ \% Y \% m \% d'). sql.gz) untuk membuat cadangan yang di-gzip. Terima kasih!
— user1324409

Catatan: Jika Anda menempatkan ini dalam my.cnf global, seperti /etc/mysql/my.cnf, namun memiliki user-didefinisikan .my.cnfdengan [client]dirumuskan, yang terakhir akan menggantikan pengaturan dalam file global! boo.
— Otheus

Perhatikan bahwa halaman manual MariaDB secara salah menyatakan bahwa sufiks xakan membaca bagian tersebut [client_x]tetapi pada kenyataannya Anda membutuhkan sufiks _xuntuk itu
— Daniel Böhmer

8

Tidak disarankan memasukkan kata sandi yang jelas dalam file teks karena mysql 5.6.6.

Anda dapat menggunakan mysql_config_editoruntuk menyimpan kata sandi yang dienkripsi juga untuk memberikan kata sandi yang berbeda untuk koneksi yang berbeda https://dev.mysql.com/doc/refman/5.6/id/mysql-config-editor.html


3
Keamanan tidak jelas ...
— Federico Razzoli

+1 untuk menyebutkan mysql_config_editor
— RolandoMySQLDBA

1
Sampai program ini (1) di-backport ke versi sebelumnya, (2) memungkinkan penyebaran kata sandi otomatis (yaitu, tidak memaksa kata sandi untuk dibaca di TTY), saya tidak merekomendasikan metode ini.
— Otheus

Apakah MariaDB memiliki dukungan atau fitur yang sebanding agar sesuai dengan mysql_config_editor?
— Jeremy Hajek

@JeremyHajek Tidak, tidak, dan kemungkinan tidak akan pernah karena dev MariaDB menunjukkan bahwa hanya memberikan rasa palsu peningkatan keamanan: MySQL 5.6: Keamanan melalui Complacency?
— Bloodgain

8

Jawaban lainnya benar. Sayangnya mysqladmintidak mendukung --defaults-group-suffix(setidaknya bukan versi yang saya gunakan).

Karenanya saya memilih menggunakan --defaults-file=HOST.cnf, yang berfungsi untuk mysql, mysqladmindan mysqldump.


2
Menambahkan ini ke .bash_profile saya membuatnya lebih mudah:alias my-host='mysql --defaults-file=HOST.cnf'
— spyle
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.