क्या यह संभव है कि प्रति डेटाबेस या .my.cnf में प्रति होस्ट के अनुसार पासवर्ड कॉन्फ़िगर किया गया हो


47

मैं अपने में निम्नलिखित है ~/.my.cnf

[client]
password="somepass"

लेकिन यह वह पासवर्ड नहीं है जिसका उपयोग मैं प्रत्येक उपयोगकर्ता @ होस्ट / डेटाबेस के लिए करता हूं जिससे मैं जुड़ता हूं। क्या अलग-अलग चीजों के लिए अलग-अलग पासवर्ड को निर्दिष्ट करने का कोई तरीका है, इसलिए मुझे उन्हें टाइप करने की आवश्यकता नहीं है?


[उपयोगकर्ता @DTest ने इस वर्ष के मई में इस तरह के एक सवाल का जवाब दिया] [1] [१]: dba.stackexchange.com/questions/2820/…
RolandoMySQLDBA

जवाबों:


64

जैसा कि मैंने यहाँ उत्तर दिया है , आप प्रत्येक उपयोगकर्ता / होस्ट / db के लिए एक खंड जोड़ सकते हैं जिसे आप अपने वाक्यविन्यास का उपयोग करने के लिए कनेक्ट करते हैं ~/.my.cnf:

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

एक बार जब यह आपके उपयोगकर्ता में हो .my.cnf, तो आप इसे कमांड लाइन पर ऐसा करके उपयोग कर सकते हैं:

$ mysql --defaults-group-suffix=host1

जैसा कि वादा किया गया था, +1 !!!
RolandoMySQLDBA

क्या आप इसे समझा सकते हैं --defaults-group-प्रत्यय?
ओथियस

अच्छा लगा। मुझे यहां से बाकी का पता लगाने में थोड़ा समय लगा, लेकिन एक mysql क्रॉन बैकअप के लिए, मैं अब mysqldump --defaults-group-प्रत्यय = host1 -P 3306 -h 111.0.0.xxx --ll -u db_usr db_name का उपयोग कर सकता हूं > / gzipped backup बनाने के लिए / home / myaccount / backups / db_name _ $ (echo $ (दिनांक '+ \% Y \% m \% d') sql.gz)। धन्यवाद!
user1324409

नोट: यदि आप इसे एक वैश्विक my.cnf में डालते हैं, जैसे कि /etc/mysql/my.cnf, लेकिन इसमें परिभाषित उपयोगकर्ता के .my.cnfसाथ उपयोगकर्ता- [client]परिभाषित है, तो उत्तरार्द्ध वैश्विक फ़ाइल में सेटिंग्स को ओवरराइड करेगा! बू।
ओथियस

नोट MariaDB के मैनपेज झूठा कहा गया है कि इस बात का एक प्रत्यय xअनुभाग पढ़ा जाएगा [client_x]लेकिन वास्तविकता में आप प्रत्यय की जरूरत है _xकि के लिए
डैनियल Bohmer

8

Mysql 5.6.6 के बाद से पाठ फ़ाइलों में स्पष्ट पासवर्ड की सिफारिश नहीं की जाती है।

आप mysql_config_editorअलग-अलग कनेक्शन के लिए अलग-अलग पासवर्ड प्रदान करने के लिए एन्क्रिप्ट किए गए पासवर्ड को बचाने के लिए भी उपयोग कर सकते हैं https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
अस्पष्टता से सुरक्षा ...
फेडेरिको रेज़ोली

Mysql_config_editor
RolandoMySQLDBA

1
जब तक यह कार्यक्रम (1) पिछले संस्करणों के लिए वापस नहीं है, (2) स्वचालित पासवर्ड तैनाती की अनुमति देता है (यानी, TTY पर पढ़ने के लिए मजबूर पासवर्ड नहीं), मैं इस पद्धति की अनुशंसा नहीं करता हूं।
ओथियस

क्या MariaDB को mysql_config_editor से मिलान करने के लिए तुलनीय समर्थन या सुविधा है?
जेरेमी हजेक

@JeremyHajek नहीं, यह नहीं है, और संभवतः कभी नहीं होगा क्योंकि मारबीडीबी देवता बताते हैं कि केवल बेहतर सुरक्षा की झूठी भावना प्रदान करता है: MySQL 5.6: शालीनता के माध्यम से सुरक्षा?
ब्लडगैन

8

अन्य उत्तर सही है। दुर्भाग्य से mysqladminसमर्थन नहीं करता है --defaults-group-suffix(कम से कम संस्करण का उपयोग नहीं कर रहा हूं)।

इसलिए मैंने --defaults-file=HOST.cnfइसके बजाय उपयोग करने का सहारा लिया , जो इसके लिए काम करता है mysql, mysqladminऔर mysqldump


2
: मेरे .bash_profile को यह जोड़ा जा रहा है तो यह और भी आसान बना दियाalias my-host='mysql --defaults-file=HOST.cnf'
spyle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.