सवाल MySQL लॉगिंग कैसे सक्षम करें?


मैं ओएस एक्स 10.6.1 पर MySQL 5.0.45 चला रहा हूं और मुझे कुछ भी लॉग इन करने के लिए MySQL नहीं मिल रहा है। मैं एक आवेदन डीबग कर रहा हूं और सभी प्रश्नों और त्रुटियों को देखने की जरूरत है।

मैंने आदि / my.cnf में जोड़ा:

[mysqld]
bind-address = 127.0.0.1
log = /var/log/mysqld.log
log-error = /var/log/mysqld.error.log

मैंने दो लॉग फ़ाइलों को बनाने के लिए सुडो का इस्तेमाल किया, 644 पर अनुमतियां सेट की, फिर MySQL को पुनरारंभ किया।

मैंने संदर्भित किया ओएस एक्स पर मेरा mysql लॉग कहां है? समस्या निवारण के लिए।

चल रहा है:

ps auxww|grep [m]ysqld

यह दिखाता है:

_mysql      71   0.0  0.8   646996  15996   ??  S     7:31PM   0:01.10 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Macintosh-41.local.pid
_mysql      46   0.0  0.0   600336    744   ??  Ss    7:30PM   0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe

और चल रहा है:

$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'

यह दिखाता है:

log                               /var/log/mysqld.log
log-bin                           (No default value)
log-bin-index                     (No default value)
log-bin-trust-function-creators   FALSE
log-bin-trust-routine-creators    FALSE
log-error                         /var/log/mysqld.error.log
log-isam                          myisam.log
log-queries-not-using-indexes     FALSE
log-short-format                  FALSE
log-slave-updates                 FALSE
log-slow-admin-statements         FALSE
log-slow-queries                  (No default value)
log-tc                            tc.log
log-tc-size                       24576
log-update                        (No default value)
log-warnings                      1

चल रहा है:

mysql> show variables like '%log%';

यह दिखाता है:

+---------------------------------+---------------------------+
| Variable_name                   | Value                     |
+---------------------------------+---------------------------+
| back_log                        | 50                        | 
| binlog_cache_size               | 32768                     | 
| expire_logs_days                | 0                         | 
| innodb_flush_log_at_trx_commit  | 1                         | 
| innodb_locks_unsafe_for_binlog  | OFF                       | 
| innodb_log_arch_dir             |                           | 
| innodb_log_archive              | OFF                       | 
| innodb_log_buffer_size          | 1048576                   | 
| innodb_log_file_size            | 5242880                   | 
| innodb_log_files_in_group       | 2                         | 
| innodb_log_group_home_dir       | ./                        | 
| innodb_mirrored_log_groups      | 1                         | 
| log                             | ON                        | 
| log_bin                         | OFF                       | 
| log_bin_trust_function_creators | OFF                       | 
| log_error                       | /var/log/mysqld.error.log | 
| log_queries_not_using_indexes   | OFF                       | 
| log_slave_updates               | OFF                       | 
| log_slow_queries                | OFF                       | 
| log_warnings                    | 1                         | 
| max_binlog_cache_size           | 4294967295                | 
| max_binlog_size                 | 1073741824                | 
| max_relay_log_size              | 0                         | 
| relay_log_purge                 | ON                        | 
| relay_log_space_limit           | 0                         | 
| sync_binlog                     | 0                         | 
+---------------------------------+---------------------------+
26 rows in set (0.00 sec)

मैं MySQL को लॉग इन करने के तरीके कैसे प्राप्त कर सकता हूं?


36
2017-10-04 00:11


मूल




जवाब:


भले ही आपने इस्तेमाल किया chmod 644, सुनिश्चित करें कि mysql लॉग का मालिक है।

touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
touch /var/log/mysql.error.log
chown mysql:mysql /var/log/mysql.error.log

अगला, mysqld पुनरारंभ करें।

फिर, mysql में लॉग इन करें और चलाएं:

mysql> show variables like '%log%';

के लिए मूल्यों को देखो general_log, general_log_file, log, log_error, आदि।

उन्हें आवश्यक और चलाने के रूप में स्विच करें mysqladmin flushlogs जैसी जरूरत थी।


22
2017-10-05 03:27



अब लॉगिंग स्वामित्व निरीक्षण होना चाहिए। हालांकि, "संपादित चर जैसे '% लॉग%'" परिणामों के परिणामों के लिए मेरा संपादित प्रश्न देखें। MySQL /var/log/mysql.log पर लॉग इन कर रहा है, तो यह क्यों नहीं दिखाता है? - RyOnLife


लॉग फ़ाइलों को सक्षम करने के लिए, आपको यह सुनिश्चित करना होगा कि निम्न में से एक या अधिक निर्देश हैं [mysqld] आपके mysql सर्वर की मुख्य कॉन्फ़िगरेशन फ़ाइल का अनुभाग (/etc/my.cnf खान पर):

[mysqld]
log-bin
log
log-error
log-slow-queries

लॉग डिफ़ॉल्ट रूप से उसी डेटा निर्देशिका में बनाए जाएंगे जो डेटाबेस उपनिर्देशिका स्वयं (आमतौर पर /var/lib/mysql) और लॉग फ़ाइल नाम होस्टनाम में डिफ़ॉल्ट है जिसके बाद उपरोक्त निर्देश नामों से मेल खाता है (उदाहरण के लिए -बिन, -स्लो-प्रश्न, आदि)।

अपने लॉग को एक अलग पथ में रखने के लिए, या विभिन्न फ़ाइल नामों का उपयोग करने के लिए, निम्न नाम का नाम निर्दिष्ट करें log= निर्देश, और किसी भी पथ और फ़ाइल नाम आपको पसंद है उदा .:

[mysqld]
log-bin=/var/log/mysql-bin.log
log=/var/log/mysql.log
log-error=/var/log/mysql-error.log
log-slow-queries=/var/log/mysql-slowquery.log

इन परिवर्तनों को प्रभावी होने के लिए आपको mysqld को पुनरारंभ करना होगा।


13
2018-03-30 14:33





पिछले जवाब दिनांकित थे। आप कॉन्फ़िगरेशन फ़ाइल देख सकते हैं /etc/my.cnf या खिड़कियों पर ./mysql/my.ini

में [mysqld] खंड जोड़ें

log_bin
general_log
log_error

विंडोज़ के लिए प्रलेखन में कहा गया है कि लॉग इन में संग्रहीत हो जाते हैं ProgramData/MySQL/MySQL Server 5.6/। इसे अनदेखा करें क्योंकि यह झूठ है।

इसके अलावा अनुशंसित log विकल्प की कमी है और त्रुटि में परिणाम

ambiguous option '--log' (log-bin, log_slave_updates)

लॉग इन किया जा रहा है ./mysql/data/host.err और नींबू चुपचाप मर रहा है। सही सेटिंग है general-log

भी log-slow-queries मान्य नहीं है और त्रुटि हुई है

C:\mysql\bin\mysqld.exe: unknown option '--log-slow-queries'

तो इससे दूर रहने के लिए निश्चित रहें।


6
2018-04-28 15:49



धन्यवाद! मैं सर्वर के साथ शुरू नहीं कर सका log= विकल्प और मेरे जीवन के लिए क्यों पता लगा सकता है। अंत में किसी उत्तर के साथ। general-log - jiveturkey


सुपर विशेषाधिकारों के साथ mysql कमांड लाइन दर्ज करें और प्रदर्शन करें:

सेट ग्लोबल general_log_file = '/var/log/mysql/mysql.log';

मेरे मामले में, इससे कोई फर्क नहीं पड़ता कि क्या मेरे पास पहले से ही वैल्यू के साथ सेट किया गया है! साथ ही, मैंने अन्य पदों में उल्लिखित फ़ाइल के अनुमतियों और मालिक को बदल दिया है।


2
2017-09-07 12:13





My.cnf में अलग-अलग लॉग सेटिंग्स आज़माएं। मेरे मामले में मुझे चाहिए:

general_log = on

general_log_file=/var/log/mysql/mysql.log

1
2017-08-05 12:34