আমি কীভাবে মাইএসকিউএল এর সময় অঞ্চল নির্ধারণ করব?


339

একটি সার্ভারে, যখন আমি রান করি:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)

অন্য সার্ভারে:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)

এখানে কেবলমাত্র সময়সীমার পার্থক্য নেই - তবে একটি তাত্পর্যপূর্ণ নয় এমন সময়স্রোতও রয়েছে: "আপনার ডিবিএর সাথে কথা বলুন ntp- এবং দেখুন আপনার জন্য কী ঠিক!"
colm.anseo

@ কলম.আনসেও শান্ত করুন এটি সম্ভবত ক্যোয়ারি চালানোর মধ্যে পার্থক্য
হোসাইএনজেএফ

1
@ হোসিএনজেএফ 7 মিনিট? তুলনা মধ্যে কফি বিরতি?
colm.anseo

উত্তর:


525

আমি ভেবেছিলাম এটি কার্যকর হতে পারে:

তিনটি জায়গা রয়েছে যেখানে মাইএসকিউএলে টাইমজোন সেট করা যেতে পারে:

[মাইকিকিএলডি] বিভাগে "my.cnf" ফাইলটিতে

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

@@ গ্লোবাল.টাইম_জোন ভেরিয়েবল

তারা কী মান সেট করা আছে তা দেখতে:

SELECT @@global.time_zone;

এর জন্য একটি মান সেট করতে একটি ব্যবহার করুন:

SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';

('ইউরোপ / হেলসিঙ্কি' এর মতো নামযুক্ত টাইমজোনগুলি ব্যবহার করার অর্থ আপনার কাছে টাইমজোন টেবিলটি সঠিকভাবে জনবহুল হওয়া উচিত))

+02:00এটি একটি অফসেট মনে রাখবেন । Europe/Berlinএকটি টাইমজোন (এতে দুটি অফসেট রয়েছে) এবং CESTএকটি ঘড়ির সময় যা নির্দিষ্ট অফসেটের সাথে মিলে যায়।

@@ সেশন.টাইম_জোন ভেরিয়েবল

SELECT @@session.time_zone;

সেট করতে এটি একটি ব্যবহার করুন:

SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";

উভয়ই SYSTEM ফিরে আসতে পারে যার অর্থ তারা my.cnf এ টাইমজোন সেট ব্যবহার করে।

টাইমজোন নামগুলি কাজ করার জন্য, আপনাকে অবশ্যই আপনার টাইমজোন তথ্য সারণীগুলি সেট আপ করতে হবে: http://dev.mysql.com/doc/refman/5.1/en/ime-zone-support.htmlএই উত্তরে সেই টেবিলগুলি কীভাবে প্রসারণ করা যায় তাও আমি উল্লেখ করেছি ।

বর্তমান টাইমজোন হিসাবে অফসেট পেতে TIME

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

আপনার টাইমজোনটি +2: 00 হলে এটি ফিরে আসবে 02:00:00।

বর্তমান ইউনিক্স টাইমস্ট্যাম্প পেতে:

SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());

UNIX টাইমস্ট্যাম্প হিসাবে টাইমস্ট্যাম্প কলাম পেতে

SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`

ইউনিক্স টাইমস্ট্যাম্প হিসাবে একটি ইউটিসি ডেটটাইম কলাম পেতে

SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`

দ্রষ্টব্য: সময় অঞ্চল পরিবর্তন করা সঞ্চিত তারিখের সময় বা টাইমস্ট্যাম্প পরিবর্তন করবে না , তবে এটি বিদ্যমান টাইমস্ট্যাম্প কলামগুলির জন্য আলাদা আলাদা ডেটটাইম প্রদর্শন করবে কারণ তারা অভ্যন্তরীণভাবে ইউটিসি টাইমস্ট্যাম্প হিসাবে সঞ্চিত রয়েছে এবং বর্তমান মাইএসকিউএল টাইমজোনটিতে বাহ্যিকভাবে প্রদর্শিত হবে।

আমি এখানে একটি চিটশিট তৈরি করেছি: মাইএসকিউএল এর উচিত কি এর টাইমজোনটি ইউটিসি তে সেট করা উচিত?


3
+00:00টাইমজোন নয়, এটি একটি সময় অফসেট। ডিএসটি-র ক্ষেত্রে কী ঘটে? এটি কি +0 বছরব্যাপী থাকে?
এমপেন

1
@ মার্ক আমি নিশ্চিত নই, ডক্স বলছে যে time_zone="+00:00"আপনি সেট করার সময় ইউটিসি থেকে অফসেট ব্যবহার করে টাইমজোনটি সেট করার সময় সেট মানটি কখনই পরিবর্তন হয় না এবং ইউটিসি ডিএসটি অনুসরণ করে না তা আমি ধরে নিতে পারি যে এটি সারা বছর একই থাকে।
টিমো হুভিনেন

1
@ টিমোহুভিনেন দুঃখিত, আমি বোঝাতে চেয়েছিলাম যে এটি অফসেটের মতো +00:00 দেখাচ্ছে তাই এটি এক ধরণের অদ্ভুত বিষয় যে মাইএসকিউএল কেবল "ইউটিসি" স্ট্রিংটি ব্যবহার না করে ইউটিসি প্রতিনিধিত্ব করার জন্য এটি বেছে নিয়েছিল। তথ্যের জন্য ধন্যবাদ।
এমপেন

1
আমি +00: 00 সেট করেছি, তবে আমি এই ত্রুটিটি পেয়েছি: ত্রুটি: কনফিগ ফাইলে পূর্ববর্তী গোষ্ঠী ছাড়াই বিকল্পটি পাওয়া গেছে: /etc/my.cnf
জেনোস

5
Win7 এ, মাইএসকিউএল সেটিংস ফাইলে পথC:\ProgramData\MySQL\MySQL Server x.x\my.ini
oabarca

82

এখনও যে কারও কাছে এই সমস্যা রয়েছে:

value="jdbc:mysql://localhost:3306/dbname?serverTimezone=UTC"

আমার জন্য কাজ করেছেন। শুধু ?serverTimezone=UTCশেষে সংযোজন ।


যদি আমার সময় অঞ্চলটি ইউটিসি +7 হয়, তবে আমি কীভাবে সংযোগের স্ট্রিংয়ে এটি নির্দিষ্ট করতে পারি? আমি "? সার্ভারটাইমজোন = ইউটিসি + 7" যুক্ত করার চেষ্টা করেছি এবং এটি কার্যকর হয় না।
চিয়ান এনজিও

1
প্রশ্নটি জেডিবিসি নয়, মাইএসকিউএল সম্পর্কে ছিল।
লুইজ

2
@ চিয়াননিঘা: আপনার বিটিডাব্লু এর Asia/Ho_Chi_Minhপরিবর্তে ব্যবহার করা উচিত UTC, প্রশ্নটি মাইএসকিউএল টাইমজোন পরিবর্তন করার বিষয়ে। সুতরাং দয়া করে @ টিমো উত্তরটি দেখুন। আপনার যদি মাইএসকিউএল ডকার নিয়ে সমস্যা হয় তবে টিজেড পরিবেশ যুক্ত করুন এবং এটি কাজ করা উচিত।
লিম লে

2
এটি কেবল জেডিবিসিকেই জানিয়ে দেয় সার্ভারের সময় অঞ্চল কী, এটি এটি পরিবর্তন করে না । সেশন টাইমজোন সেট করতে, উত্তরগুলি যা ব্যবহার করে তা পরীক্ষা করুনSET time_zone=...
নিকোলা মিহাজলভিć

আমি একটি সিডিটি ত্রুটি পেয়েছিলাম, তবে এটি আমার জন্য এটি স্থির করেছে।
অ্যাকেক্সিস

58

আপনি যখন মাইএসকিউএল বা পিএইচপি জন্য সময় অঞ্চল সার্ভার কনফিগার করতে পারেন:

মনে রাখবেন:

  1. টাইমজোন সিস্টেম পরিবর্তন করুন। উবুন্টুর উদাহরণ:

    $ sudo dpkg-reconfigure tzdata
  2. সার্ভারটি পুনরায় চালু করুন বা আপনি অ্যাপাচি 2 এবং মাইএসকিউএল পুনরায় চালু করতে পারেন:

    /etc/init.d/mysql restart

2
সম্ভবত এই পদ্ধতির সঠিক নাও হতে পারে। ইউটিসির সাথে একটি সার্ভার থাকার পরিস্থিতি সম্পর্কে ভাবুন তবে আপনার অ্যাপ্লিকেশনটি ইউটিসি -0600-তে কোনও দেশে ডেটা সরবরাহ করছে। মাইএসকিউএল-র জন্য সময় অঞ্চল সামঞ্জস্য করতে, আরও ভাল হতে পারে।
ivanleoncz

1
বিশেষত যদি আপনি এমন এক জায়গায় কাজ করেন যা একাধিক সময় অঞ্চলকে কভার করে।
অ্যালেক্সিস উইলকে

57

এটি বর্তমান সেশনের জন্য সেট করতে, করুন:

SET time_zone = timezonename;

14
নির্বাচন করুন @@ সেশন.টাইম_জোন;
জেমস স্কিডমোর

1
আমি আমার সিস্টেমে কিছু ত্রুটি সমাধানের চেষ্টা করছি এবং আমার টাইম_জোনটি ইউটিসি-তে সেট করা দরকার, জিএমটি নয়। আপনি কি জানেন যে আমি '-0: 00' বা '+00: 00' এ সেট করি যদি এটি কোনও ইউটিসি টিকা বা জিএমটি টিকা থাকে? আমি এই সুনির্দিষ্ট তথ্যটি খুঁজে পাচ্ছি না। চিয়ার্স!
rafa.ferreira

@ কাস্টানহো, আমি নিশ্চিত যে কেউ একজন ভাল কাজ করবে। এই প্রশ্নের ব্যাখ্যা দেখুন: স্ট্যাকওভারফ্লো.com
জেমস স্কিডমোর

টাইম জোনের মান পিএইচপি-র যেমন সেট হিসাবে একই হতে পারে SET time_zone = 'America/Boise'। উত্তরের জন্য ধন্যবাদ, জেমস স্কিডমোর!
আদম এফ

1
@ তিনি_নাটস হ্যাঁ, SET time_zone = 'UTC';সার্ভার পুনঃসূচনা করার সময় সেটিংসটি হারিয়ে যায়
টিমো হুভিনেন

48

আপনার মাইএসকিউএল সার্ভারে কেবল এটি চালান:

SET GLOBAL time_zone = '+8:00';

যেখানে +8: 00 হবে আপনার সময় অঞ্চল।


14
দ্রষ্টব্য, আপনি
মাইএসকিএল

খুব কমই যখন কোনও ডিবিতে সংযোগ থাকে তখন কারও কাছে সুপার्युসার সুবিধা থাকে। @@session.time_zoneঅন্যান্য উত্তরে বর্ণিত হিসাবে সেট করা অনেক ভাল রুট।
colm.anseo

16

এটি ভারতের একটি অবস্থানের জন্য আমার পক্ষে কাজ:

SET GLOBAL time_zone = "Asia/Calcutta";
SET time_zone = "+05:30";
SET @@session.time_zone = "+05:30";

আপনাকে এটি mysql এ ক্যোয়ারী হিসাবে চালাতে হবে বা নিম্নলিখিত সিনট্যাক্স ডিফল্ট-টাইম-অঞ্চল = '+05: 30' দিয়ে my.conf এর অধীনে লিখতে হবে
স্বপ্নিল বিজে

11

আপনি যখন এটি শুরু করেন সার্ভারের ডিফল্ট টাইমজোনটি নির্দিষ্ট করতে পারেন, http://dev.mysql.com/doc/refman/5.1/en/server-options.html এবং বিশেষত --default-time-zone=timezoneবিকল্পটি দেখুন। আপনি বৈশ্বিক এবং সেশন সময় অঞ্চলগুলি সাথে চেক করতে পারেন

SELECT @@global.time_zone, @@session.time_zone;

উভয়ই SETবিবৃতিতে সেট করুন , & গ; আরও অনেক তথ্যের জন্য http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html দেখুন।


11

মনে রাখবেন, 'দেশ / অঞ্চল' কখনও কখনও কাজ করে না ... এই সমস্যাটি ওএস, মাইএসকিউএল সংস্করণ এবং হার্ডওয়্যার নির্ভর নয় - 2003 এর ফ্রিবিএসডি 4 এবং স্ল্যাকওয়্যার লিনাক্সের পরে আমি আজ পর্যন্ত এটি পেয়েছি। মাইএসকিউএল 3 সংস্করণ থেকে সর্বশেষ উত্স ট্রাঙ্ক পর্যন্ত। এটি ওডিডি, তবে এটি ঘটে। উদাহরণ স্বরূপ:

root@Ubuntu# ls -la /usr/share/zoneinfo/US
total 8

drwxr-xr-x  2 root root 4096 Apr 10  2013 .
drwxr-xr-x 22 root root 4096 Apr 10  2013 ..
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Alaska -> ../SystemV/YST9YDT
lrwxrwxrwx  1 root root   21 Jul  8 22:33 Aleutian -> ../posix/America/Adak
lrwxrwxrwx  1 root root   15 Jul  8 22:33 Arizona -> ../SystemV/MST7
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Central -> ../SystemV/CST6CDT
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Eastern -> ../SystemV/EST5EDT
lrwxrwxrwx  1 root root   37 Jul  8 22:33 East-Indiana -> ../posix/America/Indiana/Indianapolis
lrwxrwxrwx  1 root root   19 Jul  8 22:33 Hawaii -> ../Pacific/Honolulu
lrwxrwxrwx  1 root root   24 Jul  8 22:33 Indiana-Starke -> ../posix/America/Knox_IN
lrwxrwxrwx  1 root root   24 Jul  8 22:33 Michigan -> ../posix/America/Detroit
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Mountain -> ../SystemV/MST7MDT
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Pacific -> ../SystemV/PST8PDT
lrwxrwxrwx  1 root root   18 Jul  8 22:33 Pacific-New -> ../SystemV/PST8PDT
lrwxrwxrwx  1 root root   20 Jul  8 22:33 Samoa -> ../Pacific/Pago_Pago
root@Ubuntu#

এবং এর মতো একটি বিবৃতি কার্যকর হওয়ার কথা:

SET time_zone='US/Eastern';

তবে আপনার এই সমস্যাটি রয়েছে:

ত্রুটির কোড: 1298. অজানা বা ভুল সময় অঞ্চল: 'EUS / পূর্ব'

আপনার অঞ্চল তথ্য ডিরেক্টরিতে সাবফোল্ডারটি একবার দেখুন এবং সিমিলিংকের জন্য ACTUAL ফাইলের নাম দেখুন, এই ক্ষেত্রে এটি EST5EDT। তারপরে এই বিবৃতিটি চেষ্টা করে দেখুন:

SET time_zone='EST5EDT';

এবং এটি আসলে এটি যেমন কাজ করা হচ্ছে ঠিক তেমন কাজ করছে! :) এই কৌশলটি মাথায় রাখুন; আমি এটি মাইএসকিউএল ম্যানুয়াল এবং অফিসিয়াল ডকুমেন্টেশনে নথিভুক্ত হতে দেখিনি। তবে সংশ্লিষ্ট ডকুমেন্টেশনগুলি পড়া অবশ্যই করণীয়: মাইএসকিউএল 5.5 টাইমজোন অফিসিয়াল ডকুমেন্টেশন - এবং ঠিক তেমনভাবে আপনার সার্ভারে টাইমজোন ডেটা লোড করতে ভুলবেন না (রুট ব্যবহারকারী হিসাবে চালান!):

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

এক নম্বর ট্রিক - এটি অবশ্যই মাইএসকিউএল রুট ব্যবহারকারীর অধীনে করা উচিত। এটি মাইএসকিউএল ডাটাবেসে সম্পূর্ণ অ্যাক্সেস পাওয়া ব্যবহারকারী থেকে এমনকি এটি ব্যর্থ বা অ-কার্যকারী ফলাফল তৈরি করতে পারে - আমি নিজেই এই ত্রুটিটি দেখেছি।


দয়া করে আমাকে আপনার অখণ্ডতা এবং আরও বিশদ বিবরণ বলুন - উবুন্টু ডেস্কটপ এবং সার্ভারে কিছু কার্যকারী মামলা রয়েছে।
অ্যালেক্সি ভেসিনিন

8

আপনি যদি পিডিও ব্যবহার করেন:

$offset="+10:00";
$db->exec("SET time_zone='".$offset."';");

আপনি যদি মাইএসকিউএলি ব্যবহার করেন:

$db->MySQLi->query("SET time_zone='".$offset."';");

অফসেটটি এখানে ফর্ম্যাট করা সম্পর্কে আরও: https://www.sitepPoint.com/synchronize-php-mysql-timezone-configration/


7

এটি একটি 10 ​​বছরের পুরানো প্রশ্ন, তবে যাই হোক না কেন এখানে আমার জন্য কী কাজ করেছে। আমি হাইবারনেট 5 এবং স্প্রিংবুট 4 এর সাথে মাইএসকিউএল 8.0 ব্যবহার করছি।

আমি উপরোক্ত গৃহীত উত্তরের চেষ্টা করেছি কিন্তু আমার পক্ষে কাজ করে নি, আমার জন্য যা কাজ করেছে তা হ'ল:

db.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=Europe/Warsaw

যদি এটি আপনাকে সহায়তা করে তবে এটিকে উজ্জীবিত করতে ভুলবেন না: ডি


4

আরও একটি পরামর্শ সহ প্রাচীন প্রশ্ন:

আপনি যদি সম্প্রতি ওএসের টাইমজোন পরিবর্তন করেছেন, যেমন:

unlink /etc/localtime
ln -s /etc/usr/share/zoneinfo/US/Eastern /etc/localtime

... আপনি ডিবি পরিষেবাটি আরম্ভ না করা পর্যন্ত মাইএসকিউএল (বা মারিয়াডিবি) লক্ষ্য করবে না:

service mysqld restart

(বা)

service mariadb restart

3

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


2
বিষয়টি মাইএসকিউএল সম্পর্কিত, কোনও নির্দিষ্ট প্রোগ্রামের সাথে নয়।
ফেডরকিই 'এসও ক্ষতিগ্রস্থ হওয়া বন্ধ করুন'

3
এর মতো কিছুই পাইনি।
Kzqai

1
এর মতো কিছুই নেই
সবুজ

মাইএসকিউএল ওয়ার্কবেঞ্চ 6.3 এর জন্য: উদাহরণ => বিকল্প ফাইল => সাধারণ => আন্তর্জাতিক
পলুস

5
[ মাইএসকিউএল ওয়ার্কবেঞ্চ ৮.০ এর জন্য আপডেট করুন] "সার্ভার" => "বিকল্প ফাইল" নির্বাচন করুন এবং "সাধারণ" ট্যাবে "আন্তর্জাতিক" বিভাগের নীচে দেখুন । সম্পর্কিত ক্ষেত্রের সাথে "ডিফল্ট-সময়-অঞ্চল" চেকবক্স থাকবে। সুতরাং আপনি সেখানে ডিফল্ট সময় অঞ্চল মান সেট করতে পারেন ।
informatik01

3

টাইম_জোন কী তা জানতে প্রথমে আপনি কোয়েরি করতে পারেন

SHOW VARIABLES LIKE '%time_zone%'; 

আপনার আউটপুট নিম্নরূপ কিছু অনুরূপ হওয়া উচিত

**Variable_name**     **Value**
system_time_zone      CDT
time_zone             SYSTEM

তারপরে আপনি যদি নিশ্চিত করতে চান যে আপনি ইএসটি-র মতো কিছু পরিবর্তে সিডিটি-র মতো কিছু সময় অঞ্চল বলছেন তবে আপনি নিজের মেশিনটি কী সময় বলেছে তা মনে করে তা পরীক্ষা করে দেখতে পারেন

SELECT NOW();

এই সময়টি না হলে যদি আপনি চান এটি পরিবর্তন করা দরকার ... আপনার যা করা দরকার তা হ'ল SET time_zone = timezone_name। নিশ্চিত হয়ে নিন যে এটি Continent/Cityফর্ম্যাটে রয়েছে।

আপনার যদি হোস্টিং সার্ভিস থাকার কারণে আপনি যদি একটি ভাগ করা সার্ভারে থাকেন তবে দয়া করে php.ini ফাইল বা .htaccess ফাইলটি পরিবর্তন সম্পর্কিত এই উত্তরগুলি দেখুন


1
আমি mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p Eপ্রথমে চেষ্টা করেছি এবং তারপর ভাল SET time_zone = timezone_nameকাজ করেছি ।
বরকত তুর্কি

1

আপনাকে আপনার অবস্থানের সময় অঞ্চল নির্ধারণ করতে হবে। যাতে নীচের প্রক্রিয়াটি অনুসরণ করুন
আপনার এমএসকিউএলওয়র্কব্যাঞ্চটি এই জাতীয় একটি সহজ স্ক্যাকল কমান্ড লিখুন;

select now();

এবং আপনার ইউআরএল এর মত হতে পারে;

url = "jdbc:mysql://localhost:3306/your_database_name?serverTimezone=UTC";

@ লুফফাই আমি এটি সম্পর্কে ভাবছিলাম, তাই প্রতিটি ডিবি-কানেক্টের জন্য সময় অঞ্চল নির্ধারণ করা উচিত যদি আমরা সেশন-স্কোপ টাইম-জোন ব্যবহার করি এবং 'গ্লোবাল'-স্কোপ টাইম-জোনটি ব্যবহার না করি। অ্যাপ্লিকেশনটিতে বিভিন্ন টাইম জোনে ব্যবহারকারী থাকতে পারে, তাহলে সেশন-স্কোপ ব্যবহার করা ভাল?
ভ্যালটার এখলম

1

মারিয়াডিবিতে মানক সময় অঞ্চল নির্ধারণ করতে আপনাকে 50-সার্ভার.সিএনএফ ফাইলটিতে যেতে হবে।

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

তারপরে আপনি mysqld বিভাগে নিম্নলিখিত প্রবেশটি প্রবেশ করতে পারেন।

default-time-zone='+01:00'

উদাহরণ:

#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#

# this is read by the standalone daemon and embedded servers
[server]

# this is only for the mysqld standalone daemon
[mysqld]

#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

### Default timezone ###
default-time-zone='+01:00'

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

পরিবর্তনটি কনফিগারেশন ফাইলের মাধ্যমেই করতে হবে, অন্যথায় মারিয়াডিবি সার্ভার পুনরায় চালু হওয়ার পরে মাইএসকিএল টেবিলগুলি পুনরায় সেট করবে!


1

মাইএসকিউএল কনফিগারেশন ফাইলটি সম্পাদনা করুন

sudo nano /etc/mysql/my.cnf

স্ক্রোল করুন এবং এগুলি নীচে যুক্ত করুন। প্রাসঙ্গিক টাইম জোনে পরিবর্তন করুন

[mysqld]
default-time-zone = "+00:00"

সার্ভারটি পুনরায় চালু করুন

sudo service mysql restart

0

উইন্ডোজ (আইআইএস) এ গ্লোবাল টাইমজোন = 'ইউরোপ / হেলসিঙ্কি' (বা যাই হোক না কেন) সেট করতে সক্ষম হওয়ার জন্য মাইএসকিউএল টাইমজোন বিবরণ সারণীগুলি প্রথমে পপুলেট করা দরকার।

আমি এই লিঙ্কটি https://dev.mysql.com/downloads/timezones.html থেকে ডাউনলোড করেছি

ডাউনলোড করা এসকিউএল ক্যোয়ারী চালানোর পরে আমি গ্লোবাল টাইম_জোন সেট করতে এবং আমার যে সমস্যাটি ছিল সেখুনি এখনই নির্বাচন করতে সক্ষম হয়েছি (); বিএসটি-র পরিবর্তে জিএমটি ফিরছিল।


আমি "ইউরোপ / স্টকহোম" এর পরিবর্তে "+01: 00" নম্বর বিন্যাসটি ব্যবহার করতে পারি তাই আমার মনে হয় সময়_জোন বর্ণন সারণীগুলি ডাউনলোড করার দরকার নেই।
ভ্যালটার এখলম

0

আমার ক্ষেত্রে সমাধানটি ছিল উন্নত সেটিংসে সার্ভারটাইমজোন প্যারামিটারকে একটি উপযুক্ত মান (আমার টাইম জোনের জন্য সিইটি) সেট করা।

আমি যেমন ইন্টেলিজি ব্যবহার করি, আমি এর ডেটাবেস মডিউলটি ব্যবহার করি। ডাটাবেসে নতুন সংযোগ যুক্ত করার সময় এবং ট্যাব জেনারেলের সমস্ত প্রাসঙ্গিক প্যারামিটার যুক্ত করার পরে, "টেস্ট সংযোগ" বোতামটিতে একটি ত্রুটি হয়েছিল। আবার, সমাধানটি ট্যাব অ্যাডভান্সডে সার্ভারটাইমজোন পরামিতি সেট করে।


0

যদি কেউ গোডাডি শেয়ার্ড হোস্টিং ব্যবহার করে থাকে তবে আপনি নিম্নলিখিত সমাধানের জন্য চেষ্টা করতে পারেন, আমার জন্য কাজ করেছেন।

ডিবি সংযোগ শুরু করার সময়, আমার PDO অবজেক্টে টাইম_জোন কমান্ডটি সেট করুন যেমন:

$pdo = new PDO($dsn, $user, $pass, $opt);
$pdo->exec("SET time_zone='+05:30';");

যেখানে "+05: 30" ভারতের টাইমজোন। আপনি আপনার প্রয়োজন অনুযায়ী এটি পরিবর্তন করতে পারেন।

তারপর; তারিখ এবং সময় সম্পর্কিত সমস্ত মাইএসকিউএল প্রক্রিয়া প্রয়োজনীয় টাইমজোন সহ সেট করা আছে।

সূত্র: https://in.godaddy.com/commune/cPanel-Hosting/How-to- بدل- TimeZone- for- MySqL/ td- p/ 31861

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