2010-12-30 12 views
11

MySQL में आप टाइमज़ोन को बदलने के लिए time_zone नामक एक सत्र चर सेट कर सकते हैं। यह उपयोगी है उदा। जब किसी अन्य देश से टाइमस्टैम्प देख रहे हों।MySQL: my.cnf विकल्प फ़ाइल में time_zone सेटिंग

mysql> select now(); 
+---------------------+ 
| now()    | 
+---------------------+ 
| 2010-12-30 18:59:18 | 
+---------------------+ 
1 row in set (0.00 sec) 

mysql> set time_zone='Brazil/East'; 
Query OK, 0 rows affected (0.00 sec) 

mysql> select now(); 
+---------------------+ 
| now()    | 
+---------------------+ 
| 2010-12-30 09:59:29 | 
+---------------------+ 
1 row in set (0.00 sec) 

यह उदा डाल करने के लिए है कि एक विकल्प फ़ाइल में संभव है: यहाँ एक उदाहरण है .my.cnf?

जब मैं कोशिश करता हूं, यह काम नहीं करता है। सभी मैं है:

mysql: unknown variable 'time_zone=Brazil/East' 
+1

आपका ऑपरेटिंग सिस्टम क्या है? –

उत्तर

16

यह होना चाहिए

default_time_zone=Brazil/East 

विवरण: http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone

विकल्प- फ़ाइल स्वरूप = default_time_zone

+0

धन्यवाद। यह काम। – emx

+0

मुझे 'mysql: [ERROR] अज्ञात चर 'default_time_zone = ब्राजील/ईस्ट' प्राप्त हो रहा है जब इसे मेरे'/etc/mysql/conf.d/mysql.cnf' में अनुभाग '[mysql]' के अंतर्गत रखा गया है। संस्करण 5.7.20। – kev

+0

इसे '[mysqld]' के तहत डालकर सर्वर में परिणाम पुनरारंभ नहीं हो रहा है और बाहर निकल रहा है: 'mysql के लिए नौकरी।सेवा विफल रही क्योंकि नियंत्रण प्रक्रिया त्रुटि कोड से निकल गई। विवरण के लिए "systemctl स्थिति mysql.service" और "journalctl -xe" देखें। – kev

1

मुझे यकीन नहीं है कि Xampp में क्या बदल गया है, लेकिन यह समाधान केवल तभी काम करता है जब आप इस पंक्ति को उचित स्थान पर रखें। मेरा विश्वास करो मैंने कई बार कोशिश की और इस समाधान को खोजने के लिए एक बहुत अच्छी तरह से खोज करना पड़ा।

default-time-zone = "+00:00" 

उदाहरण:

read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M 
default-time-zone = "+00:00" <--- Place here. 
log_error = "mysql_error.log" 

https://community.apachefriends.org/f/viewtopic.php?f=16&t=47656

इसके अलावा, आप आप अमेरिका उपयोग करने के लिए "जा रहे हैं सुनिश्चित करें कि आप अपने डेटाबेस उचित समय क्षेत्र नामों के साथ ले लिया है हो सकता है चाहता हूँ /लॉस एंजिलस"। मैं ऑफसेट का उपयोग करने की सलाह दूंगा। मैं वास्तव में यूटीसी को अपने आधार के रूप में उपयोग करने की सलाह देता हूं, फिर उस समय से अपने समय को अपने टाइमज़ोन के आधार पर परिवर्तित कर दूंगा जो आपको बाद में कई सिरदर्द बचाएगा और आपके डेटाबेस को अच्छी और वर्दी बनाए रखेगा। नीचे दी गई मार्गदर्शिका देखें, मैंने इसे मेरे लिए बहुत स्पष्ट रूप से समझाया और मैंने इस प्रणाली का उपयोग किया। इसे कोड करने के कई तरीके हैं लेकिन इस दृष्टिकोण को लेकर आपको बहुत सारे मुद्दों को बचाया जाएगा।

http://www.vertabelo.com/blog/technical-articles/the-proper-way-to-handle-multiple-time-zones-in-mysql

1

एक थोड़ी देर हो चुकी है, लेकिन इस फिर भी उपयोगी हो सकता है:

जब स्पष्ट रूप से समय क्षेत्र की स्थापना, यह है कि आप सही समय क्षेत्र नाम का उपयोग कर रहे हैं, ध्यान में रखते हुए कई अमान्य हो जाने की पुष्टि करें। आप पुष्टि करने के लिए https://en.wikipedia.org/wiki/List_of_tz_database_time_zones का उपयोग कर सकते हैं।

मेरे मामले में, MySQL 5.7 का उपयोग करके, बहिष्कृत टाइमज़ोन नाम मेरी mysqld.cnf फ़ाइल में [mysqld] के नीचे जोड़ते समय काम नहीं कर रहा था। नए टाइमज़ोन नाम का उपयोग करके, और mysql सेवा को पुनरारंभ करने के लिए, काम किया।

तो उपयोगकर्ता @kev यहाँ, America/Sao_Paulo का उपयोग कर काम करना चाहिए, बजाय ब्राजील/पूर्वी का उपयोग कर के लिए।

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