2009-11-10 15 views
6

मेरे MySQL डेटाबेस को पुनर्स्थापित करने के लिए, मैंने हटा दिया /etc/my.cnfMySQL: मैं कैसे देख सकता हूं कि कौन सी कॉन्फ़िगरेशन फ़ाइलों का उपयोग किया जाता है?

लेकिन MySQL की डिफ़ॉल्ट सेटिंग्स क्या हैं? और मैं कैसे देख सकता हूं कि कौन सी कॉन्फ़िगरेशन फाइलें उपयोग में हैं?

मैं देख सकता हूं कि mysql --help मुझे वर्तमान सेटिंग्स की एक सूची देता है। लेकिन मेरी वास्तविक समस्या यह है कि मैं local-infile और max_allowed_packet को संशोधित करना चाहता हूं।

सहायता पाठ यह भी बताता है कि यह निम्न फ़ाइलों से पढ़ता है: /etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf। लेकिन उनमें से कोई भी मौजूद नहीं है:

> cat /etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf 
cat: /etc/my.cnf: No such file or directory 
cat: /etc/mysql/my.cnf: No such file or directory 
cat: /opt/local/etc/mysql5/my.cnf: No such file or directory 
cat: /Users/jesper/.my.cnf: No such file or directory 

क्या मैं एक नई कॉन्फ़िगरेशन फ़ाइल बना सकता हूं जिसमें केवल इन सेटिंग्स शामिल हों? और सबसे विशिष्ट: मैं कैसे देख सकता हूं कि कौन सी कॉन्फ़िगरेशन फ़ाइलें उपयोग में हैं?

यहाँ से mysql --help

> mysql --help 
mysql Ver 14.14 Distrib 5.1.40, for apple-darwin10.0.0 (i386) using readline 6.0 
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc. 

[...] 

Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf 
The following groups are read: mysql client 
The following options may be given as the first argument: 
--print-defaults Print the program argument list and exit 
--no-defaults  Don't read default options from any options file 
--defaults-file=# Only read default options from the given file # 
--defaults-extra-file=# Read this file after the global files are read 

Variables (--variable-name=value) 
and boolean options {FALSE|TRUE} Value (after reading options) 
--------------------------------- ----------------------------- 
auto-rehash      TRUE 
character-sets-dir    (No default value) 
column-type-info     FALSE 
comments       FALSE 
compress       FALSE 
debug-check      FALSE 
debug-info      FALSE 
database       (No default value) 
default-character-set    latin1 
delimiter       ; 
vertical       FALSE 
force        FALSE 
named-commands     FALSE 
ignore-spaces      FALSE 
local-infile      FALSE 
no-beep       FALSE 
host        (No default value) 
html        FALSE 
xml        FALSE 
line-numbers      TRUE 
unbuffered      FALSE 
column-names      TRUE 
sigint-ignore      FALSE 
port        0 
prompt       mysql> 
quick        FALSE 
raw        FALSE 
reconnect       TRUE 
socket       (No default value) 
ssl        FALSE 
ssl-ca       (No default value) 
ssl-capath      (No default value) 
ssl-cert       (No default value) 
ssl-cipher      (No default value) 
ssl-key       (No default value) 
ssl-verify-server-cert   FALSE 
table        FALSE 
user        (No default value) 
safe-updates      FALSE 
i-am-a-dummy      FALSE 
connect_timeout     0 
max_allowed_packet    16777216 
net_buffer_length     16384 
select_limit      1000 
max_join_size      1000000 
secure-auth      FALSE 
show-warnings      FALSE 
+1

बस निर्दिष्ट करने के लिए: जब मैं इसका उत्तर प्राप्त करता हूं तो मैं इस प्रश्न का उत्तर दूंगा: मैं कैसे देख सकता हूं कि कौन सी कॉन्फ़िगरेशन फ़ाइलें उपयोग में हैं? –

उत्तर

4

जहां तक ​​मुझे पता है, यह देखने का कोई तरीका नहीं है कि कॉन्फ़िगरेशन फ़ाइल MySQL पढ़ने के बाद क्या पढ़ा गया है। यदि कोई अस्तित्व में नहीं है, तो यह केवल उन डिफ़ॉल्टों का उपयोग करता है जिनके साथ संकलित किया गया था। नोट, ऑपरेटिव शब्द होने के बाद, MySQL कॉन्फ़िगरेशन फ़ाइल को इसे पार्स करने के लिए अब तक खुला नहीं रखता है।

यदि आप फ़ाइलों की ऑर्डर को सत्यापित करने के लिए उत्सुकता से उत्सुक हैं, तो आप आसानी से strace के माध्यम से mysql चला सकते हैं और access() सिस्टम कॉल नोट कर सकते हैं। यह आपको उस कॉन्फ़िगरेशन की खोज करते समय अनुपालन करने के लिए संकलित किया गया ऑर्डर दिखाएगा, और एक बहुत सी चीजें जिन्हें आप वास्तव में जानना नहीं चाहते थे।

+0

तो, मुझे लगता है कि इसका मतलब यह नहीं है कि यह देखने का कोई उचित तरीका नहीं है कि उसने कौन सी फाइलें पढ़ी हैं, यह –

+0

@ जेस्पर रोएन-जेन्सेन से कॉन्फ़िगरेशन है - कोई पारंपरिक तरीका नहीं है (जैसा कि MySQL स्वयं द्वारा प्रदान किया गया है), हालांकि इसे समझना बहुत कठिन नहीं होना चाहिए अन्य तरीकों के साथ बाहर। जैसा कि कुलेब्रॉन ने बताया, स्थानीय-इनफाइल को mysql को पढ़ने के लिए मजबूर होना चाहिए ./my.cnf अगर यह मौजूद है, या ~/my।सीएनएफ, तो सिस्टम डिफ़ॉल्ट। केवल स्ट्रेस आपको यह बताने जा रहा है कि क्या यह वास्तव में ऐसा करने के क्रम में कर रहा है, हालांकि मेरे पास संदेह करने का कोई कारण नहीं है कि यह नहीं होगा। –

+0

मैं इसे सबसे उपयुक्त उत्तर के रूप में स्वीकार कर रहा हूं। उत्तर देने के लिए समय लेने के लिए बहुत बहुत धन्यवाद। बक्षीस सबसे योग्य है :) –

3

उत्पादन इस my.cnf का प्रयास करें या एक कमांड लाइन पैरामीटर के साथ इसे लोड है:

[mysqld] 
max_allowed_packet = 16M 
[client] 
local-infile=1 

ऐसा नहीं है कि मानकों को उचित वर्गों में थे महत्वपूर्ण है।

जैसा कि मैं समझता हूं, MySQL आपके द्वारा लिखे गए अनुक्रम में फ़ाइलों को पढ़ता है और फिर संकलन में सेट किए गए डिफ़ॉल्ट का उपयोग करता है।

+0

तो मुझे लगता है कि जवाब है: MySQL उपयोग करने वाली कॉन्फ़िगरेशन फ़ाइलों को देखने का कोई तरीका नहीं है? –

0

सूचीबद्ध कॉन्फ़िगरेशन फ़ाइलें केवल तभी पढ़ी जाती हैं जब वे मौजूद हों, जाहिर है। क्या आपने अपनी होम निर्देशिका में रूट के रूप में पर /etc/my.cnf या अन्य लोगों में से एक को पढ़ने का प्रयास किया है? मुझे आश्चर्य है कि उनमें से कोई भी वहां नहीं है।

वैसे भी, आप फ़ाइलों में से एक बना सकते हैं, उदाहरण के लिए, ~/.my.cnf, और उस कोड को शामिल करें जो कुलेब्रॉन ने अभी पोस्ट किया है।

+0

तो मुझे लगता है कि जवाब है: MySQL उपयोग करने वाली कॉन्फ़िगरेशन फ़ाइलों को देखने का कोई तरीका नहीं है? –

संबंधित मुद्दे

 संबंधित मुद्दे