Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में event_scheduler=ON स्थायी रूप से कैसे सेट करें (रीस्टार्ट के बाद भी)?

MySQL में event_scheduler को स्थायी रूप से ON रखने के लिए (सर्वर रीस्टार्ट के बाद भी), कॉन्फिगरेशन फ़ाइल (my.cnf या my.ini) में सेट करना आवश्यक है।

विधि 1: कॉन्फिगरेशन फ़ाइल में (स्थायी - अनुशंसित)

Linux/macOS: /etc/my.cnf या /etc/mysql/my.cnf

[mysqld]
event_scheduler = ON

Windows: my.ini (आमतौर पर C:\ProgramData\MySQL\MySQL Server X.X\my.ini)

[mysqld]
event_scheduler = ON

परिवर्तन लागू करें

  1. फ़ाइल संपादित करें
  2. MySQL सर्वर रीस्टार्ट करें:
    • Linux: sudo systemctl restart mysqld या sudo service mysql restart
    • Windows: Services.msc से MySQL सेवा रीस्टार्ट
  3. सत्यापित करें: SELECT @@event_scheduler; → ON

विधि 2: रनटाइम में (अस्थायी - रीस्टार्ट पर रीसेट)

SET GLOBAL event_scheduler = ON;

यह तुरंत प्रभावी होता है लेकिन रीस्टार्ट पर OFF हो जाता है।

स्थिति जांचें

-- सत्र वेरिएबल
SELECT @@event_scheduler;

-- ग्लोबल वेरिएबल
SELECT @@GLOBAL.event_scheduler;

-- SHOW VARIABLES से
SHOW VARIABLES LIKE 'event_scheduler';

आउटपुट:

+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+

रीस्टार्ट टेस्ट (मूल लेख से)

mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |
+-------------------+

mysql> RESTART;  -- MySQL 8.0+ कमांड
Query OK, 0 rows affected

-- कनेक्शन खो जाता है, पुनः कनेक्ट के बाद
mysql> SELECT @@event_scheduler;
+-------------------+
| @@event_scheduler |
+-------------------+
| ON                |  -- कॉन्फिग फ़ाइल में सेट होने पर ON रहता है
+-------------------+

इवेंट शेड्यूलर क्या है?

  • MySQL का बिल्ट-इन टास्क शेड्यूलर (क्रॉन जैसा)
  • समय-आधारित इवेंट्स (CREATE EVENT) चलाने के लिए आवश्यक
  • डिफॉल्ट: OFF (प्रदर्शन के लिए)
  • ON करने पर बैकग्राउंड थ्रेड शुरू होता है

इवेंट बनाने का उदाहरण

CREATE EVENT daily_cleanup
ON SCHEDULE EVERY 1 DAY
STARTS CURRENT_TIMESTAMP
DO
  DELETE FROM logs WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY);

नोट

  • event_scheduler ग्लोबल सिस्टम वेरिएबल है
  • सुपर विशेषाधिकार (SUPER privilege) आवश्यक
  • कॉन्फिग फ़ाइल में सेट करने के बाद रीस्टार्ट अनिवार्य
  • मॉनिटरिंग: SHOW PROCESSLIST में "event_scheduler" थ्रेड दिखेगा
  1. MySQL डेटाबेस में एक टेबल का बैकअप कैसे लें? MySQL डेटाबेस में एक टेबल का बैकअप कैसे लें?

    सिंगल टेबल का बैकअप लेने के लिए mysqldump यूटिलिटी का उपयोग करें। यह MySQL 5.0+ में मानक तरीका है। कमांड लाइन से बैकअप लें कमांड प्रॉम्प्ट खोलें (Win+R → cmd) MySQL के bin फोल्डर में जाएं: cd C:\Program Files\MySQL\MySQL Server 8.0\bin mysqldump चलाएं: E:\student.sql Enter password: ***********

  1. MySQL में sql_mode को स्थायी रूप से कैसे सेट करें? MySQL में sql_mode को स्थायी रूप से कैसे सेट करें?

    कॉन्फ़िगरेशन फ़ाइल (my.cnf / my.ini) संपादित करें sql_mode को स्थायी रूप से सेट करने के लिए MySQL कॉन्फ़िगरेशन फ़ाइल में [mysqld] सेक्शन के तहत जोड़ें। चरण डेटा डायरेक्टरी पता करें: SELECT @@datadir; उस निर्देशिका में my.cnf (Linux) या my.ini (Windows) खोजें। [mysqld] सेक्शन में जोड़ें: sql_mode=T

  1. MySQL में INFORMATION_SCHEMA.key_column_usage खराब प्रदर्शन कैसे ठीक करें? MySQL में INFORMATION_SCHEMA.key_column_usage खराब प्रदर्शन कैसे ठीक करें?

    INFORMATION_SCHEMA.key_column_usage धीमा होने पर समाधान INFORMATION_SCHEMA.KEY_COLUMN_USAGE क्वेरी बड़ी संख्या में टेबल/इंडेक्स होने पर धीमी हो सकती है क्योंकि MySQL प्रत्येक टेबल के मेटाडेटा को ऑन-डिमांड पढ़ता है। समाधान: innodb_stats_on_metadata अक्षम करें SET GLOBAL innodb_stats_on_metadata = 0;