কীভাবে মাইএসকিউএল লগিং সক্ষম করবেন?


36

আমি ওএস এক্স 10.6.1 এ মাইএসকিউএল 5.0.45 চালাচ্ছি এবং আমি মাইএসকিউএল কোনও লগইন করতে পারি না। আমি একটি অ্যাপ্লিকেশন ডিবাগ করছি এবং সমস্ত প্রশ্ন এবং ত্রুটি দেখতে প্রয়োজন।

আমি ইত্যাদি / my.cnf এ যুক্ত করেছি:

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

আমি দুটি লগ ফাইল তৈরি করতে sudo ব্যবহার করেছি, 644 এ অনুমতি নির্ধারণ করেছি, তারপরে মাইএসকিউএল পুনরায় চালু করব।

আমি উল্লেখ করেছি ওএস এক্স-এ আমার মাইএসকিএল লগ কোথায়? সমস্যা সমাধানের জন্য।

চলমান:

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)

আমি লগতে মাইএসকিউএল পেতে পারি তার কোনও সহায়তা?

উত্তর:


23

আপনি ব্যবহার করা সত্ত্বেও chmod 644, নিশ্চিত করুন যে মাইএসকিএল লগগুলির মালিক।

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, ইত্যাদি

এগুলি প্রয়োজন অনুসারে স্যুইচ করুন এবং প্রয়োজন অনুযায়ী মাইসক্ল্যাডমিন ফ্লাশলগগুলি চালান ।


এখন লগিং। অবশ্যই মালিকানা পর্যবেক্ষণ করা উচিত। যদিও, "'% লগ%'" কোয়েরির মতো ভেরিয়েবলগুলি দেখানোর ফলাফলের জন্য আমার সম্পাদিত প্রশ্নটি দেখুন। মাইএসকিউএল /var/log/mysql.log এ লগইন করছে, তবে এটি কেন দেখায় না?
রাইওনলাইফ

13

লগ ফাইলগুলি সক্ষম করতে, আপনাকে নিশ্চিত করতে হবে যে নিম্নলিখিত এক বা একাধিক নির্দেশাবলী [mysqld]আপনার মাইএসকিএল সার্ভারের মূল কনফিগারেশন ফাইলের ( /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 পুনরায় আরম্ভ করতে হবে art


5

আগের উত্তরগুলি তারিখ ছিল। আপনি /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'

সুতরাং এটি থেকে দূরে থাকুন নিশ্চিত হন।


ধন্যবাদ! আমি log=বিকল্পটি দিয়ে সার্ভারটি আরম্ভ করতে পারিনি এবং আমার জীবনের কারণটি খুঁজে বের করতে পারলাম। শেষ পর্যন্ত কেউ উত্তর দিয়ে। general-log
jiveturkey

2

সুপার সুবিধা সহ mysql কমান্ড লাইন প্রবেশ করুন এবং সম্পাদন করুন:

সেট GLOBAL জেনারেল_লগ_ফিল = '/var/log/mysql/mysql.log'; 

আমার ক্ষেত্রে, আমার যদি ইতিমধ্যে একই ভেরিয়েবলটি একই মান দিয়ে সেট করে থাকত তবে কিছু যায় আসে না! এছাড়াও, আমি অন্যান্য পোস্টগুলিতে উল্লিখিত হিসাবে অনুমতি এবং ফাইলের মালিককে পরিবর্তন করেছি।


1

My.cnf এ বিভিন্ন লগ সেটিংস চেষ্টা করুন Try আমার ক্ষেত্রে আমার প্রয়োজন:

general_log = on

general_log_file=/var/log/mysql/mysql.log
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.