मेरी .my.cnf सेटिंग काम क्यों नहीं करती?


15

मेरे पास अपने डेस्कटॉप पर मेरी होम निर्देशिका में एक .my.cnf फ़ाइल है जिसमें शामिल हैं:

[dbid]
user = myusername
password = mypassword
database = dbname
host = server.location.com

यदि मुझे सही ढंग से याद है, तो Ubuntu 10.04 से 11.04 तक अपग्रेड करने से पहले, मैं कमांड का उपयोग करने में सक्षम था

mysql dbid

डेटाबेस से सीधे जुड़ने के लिए

लेकिन आज मुझे यह त्रुटि मिली है:

ERROR 1049 (42000): Unknown database 'dbname'

क्या मैंने कुछ गलत किया?


मैंने इसे अपडेट में शामिल किए गए उत्तर के आधार पर 'वास्तविक प्रश्न नहीं' के रूप में चिह्नित किया। समस्या को डेटाबेस के साथ करने के बजाय आईपी पते में किए गए परिवर्तनों के साथ करना पड़ा। मुझे वास्तव में यकीन नहीं है कि अगर इसे बंद किया जाना चाहिए या अगर मुझे जवाब के रूप में अपडेट प्रदान करना चाहिए।
डेविड लेबॉयर

अक्सर यह खातों पर टिप्पणी करने के लिए पर्याप्त है, जिसका उपयोग "#" के साथ नहीं किया जाना चाहिए।

मुझे समझ नहीं आ रहा है कि आपका क्या मतलब है - यह सवाल का जवाब कैसे देता है?
डेविड लेबॉयर

जवाबों:


23

मुझे यकीन नहीं है कि आपका पिछला .my.cnf कैसे काम करता था, और मैंने वास्तव में पहले कभी इन फ़ाइलों का उपयोग नहीं किया है (मुख्यतः क्योंकि मैं उनके बारे में नहीं जानता था)। इसलिए थोड़ी खोजबीन के बाद, मुझे यह लिंक मिला और निम्नलिखित ~ / .my.cnf के साथ आया, जो मेरे लिए काम करते हैं:

[clientdbid]
password = mypass
database = dbname
host = server.location.com

और कमांड जो इसे पढ़ता है:

mysql --defaults-group-suffix=dbid

एक दो बातें इंगित करने के लिए (लेख से प्रकाश डाला गया):

  • समूह को 'क्लाइंट' द्वारा mysql द्वारा पढ़ा जाना चाहिए
  • किसी भी [ग्राहक] समूहों के बाद जाना होगा, अन्यथा इसे ओवरराइड किया जाएगा

मैं mysql 5.5 पर एक मैक पर यह परीक्षण किया, महान काम किया। और अब जब मैं उनके बारे में जानता हूं, तो मैं उनका उपयोग करूंगा!

अद्यतन करने के बाद मैंने इसे स्थापित किया, मुझे महसूस हुआ कि कमांड लाइन mysql --defaults-group-suffix=dbidथोड़ी भारी थी। इसलिए बोनस के रूप में, यह मानते हुए कि आप Linux / Mac / Etc चला रहे हैं:

echo 'alias mysql_dbid="mysql --defaults-group-suffix=dbid"' >> ~/.profile

dbidआपके प्रत्यय समूह का नाम कहां है


हे @Dest, आपके उत्तर में अच्छा सामान !!! +1 (आपके mysql बैज पर BTW बधाई)
RolandoMySQLDBA

मैं इस एक को उभारने जा रहा था, फिर मैंने कहा कि वाह देजावु। यह कई महीने पहले से था।
RolandoMySQLDBA

0

मेरे डेटाबेस व्यवस्थापक ने समस्या को उजागर करने में मेरी मदद की, और इसलिए यहां मूल मुद्दे का समाधान है जिसने इस प्रश्न को प्रेरित किया:

मुद्दा (जैसा कि मैं इसे समझता हूं) यह था कि डेटाबेस केवल विशिष्ट आईपी पते के आधार पर कंप्यूटर तक पहुंच की अनुमति देता है। नया कंप्यूटर मिलने पर मेरा IP पता बदल गया था, और मेरे डेटाबेस व्यवस्थापक के शब्दों में, अलग-अलग IP पते के साथ स्थापित किए गए खातों के लिए मेरे पास अलग-अलग पासवर्ड थे।

मेरे पास user@olddesktopip.edu, user@newdesktopip.edu, और आपके IP पते के आधार पर आपके लिए कुछ अलग उपयोगकर्ता नाम थे। पासवर्ड उन सभी के लिए समान नहीं थे जो भ्रम पैदा करते थे, यह परेशानी के लिए मेरी गलती थी।


0

डेरेक डाउनी के अपडेट के अपडेट के रूप में, यह है कि मैं विभिन्न लिनक्स कंप्यूटरों में एक आम ~ / .my.cnf फ़ाइल का उपयोग करता हूं, स्वचालित रूप से होस्टनाम के अनुसार उपयुक्त अनुभाग का चयन करता है:

echo 'alias mysql="mysql --defaults-group-suffix=$HOST"' >> ~/.bash_aliases

उसके बाद, मुझे कमांड लाइन पर टाइप करना है mysql

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.