Answers.Body: <p>If you have access to root user on your server, you can fix it. On Plesk that command did the job and I don't have the message any more:</p>
  <pre><code>mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uadmin -p`cat /etc/psa/.psa.shadow` mysql
  </code></pre>
  <p>source:
  https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html](<a href="https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html" rel="nofollow noreferrer">https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-22T14:44:47.563Z
Answers.Text: I'm getting the same on Drupal so I assume this is a recent update problem.  My setup is slightly different but the fix is ultimately the same, to load the time Zone info into MySQL using the mysql_tzinfo_to_sql script
Answers.UserDisplayName: ChumKui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-22T21:14:59.260Z
Answers.Text: Thanks - I do have root access, but I also have 60+ sites on this server, and I'm concerned that reloading the timezone tables globally could have a negative affect on the databases of unrelated sites.  Is there any other way to deal with this issue?  Might creating a new database and importing this one's data into it address it?  Or, could changing the timezone to something else (why was it "Europe/Berlin" in the first place?) possibly address it?
Answers.UserDisplayName: Scott H
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-23T01:04:12.983Z
Answers.Text: It just checks Europe/Berlin as an example of one that is in the timezone tables - it doesn't mean the site is set to Berlin time. It seems really unlikely loading timezone tables would negatively affect a site - many distributions come with them loaded, and they're needed for db timestamp fields to work properly across DST.
Answers.UserDisplayName: Demerit
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-23T21:00:46.543Z
Answers.Text: 1. $ ls -la /usr/share/zoneinfo  2. $ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
Answers.UserDisplayName: yurg
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-24T10:53:28.060Z
Answers.Text: All you are doing by adding the Time Zone data files is populating the MySQL or MariaDB instance with this information. Your instance will likely be set to the Server timezone anyway, and if not, adding this data does not change that, it is 'reference' information from what I can understand.  I can well understand your concern about the impact on this global change to other sites, so maybe checking with DBA to review impact is the best thing for you.
Answers.UserDisplayName: ChumKui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-02-21T16:39:58.327Z
Answers.LastActivityDate: 2023-02-21T16:39:58.327Z
Answers.UserDisplayName: Guillaume Sorel
Body: <p>I've redacted the client name for privacy, but the following appears repeatedly in our CiviCRM error log.  Can someone please help me with an explanation / solution?  Thanks a bunch!</p>
  <pre><code>Feb 21 11:01:04  [debug] $backTrace = #0 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(954): CRM_Core_Error::backtrace(&quot;backTrace&quot;, TRUE)
  #1 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(945): CRM_Core_Error::exceptionHandler(Object(DB_Error))
  #2 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php(997): PEAR_Error-&gt;__construct(&quot;DB Error: unknown error&quot;, -1, 16, (Array:2), &quot;SET @@time_zone = \&quot;Europe/Berlin\&quot; [nativecode=1298 ** Unknown or incorrect ...&quot;)
  #3 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error-&gt;__construct(-1, 16, (Array:2), &quot;SET @@time_zone = \&quot;Europe/Berlin\&quot; [nativecode=1298 ** Unknown or incorrect ...&quot;)
  #4 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR::_raiseError(Object(DB_mysqli), NULL, -1, 16, (Array:2), &quot;SET @@time_zone = \&quot;Europe/Berlin\&quot; [nativecode=1298 ** Unknown or incorrect ...&quot;, &quot;DB_Error&quot;, TRUE)
  #5 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1928): PEAR-&gt;__call(&quot;raiseError&quot;, (Array:7))
  #6 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(943): DB_common-&gt;raiseError(-1, NULL, NULL, &quot;SET @@time_zone = \&quot;Europe/Berlin\&quot; [nativecode=1298 ** Unknown or incorrect ...&quot;, &quot;1298 ** Unknown or incorrect time zone: 'Europe/Berlin'&quot;)
  #7 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(413): DB_mysqli-&gt;mysqliRaiseError()
  #8 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli-&gt;simpleQuery(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;)
  #9 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common-&gt;query(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;)
  #10 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1829): DB_DataObject-&gt;_query(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;)
  #11 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(494): DB_DataObject-&gt;query(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;)
  #12 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1747): CRM_Core_DAO-&gt;query(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;, TRUE)
  #13 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check/Component/Timestamps.php(39): CRM_Core_DAO::singleValueQuery(&quot;SET @@time_zone = \&quot;Europe/Berlin\&quot;&quot;)
  #14 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check/Component.php(76): CRM_Utils_Check_Component_Timestamps-&gt;checkTimezoneAPIs(FALSE)
  #15 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(215): CRM_Utils_Check_Component-&gt;checkAll((Array:0), FALSE)
  #16 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(185): CRM_Utils_Check::checkStatus()
  #17 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(93): CRM_Utils_Check::checkAll()
  #18 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Page.php(255): CRM_Utils_Check-&gt;showPeriodicAlerts()
  #19 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contact/Page/DashBoard.php(57): CRM_Core_Page-&gt;run()
  #20 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Contact_Page_DashBoard-&gt;run((Array:2), NULL)
  #21 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:17))
  #22 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:2))
  #23 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:2))
  #24 /home/xxxxxxxx/public_html/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress-&gt;invoke(&quot;&quot;)
  #25 /home/xxxxxxxx/public_html/wp-includes/class-wp-hook.php(332): WP_Hook-&gt;apply_filters(&quot;&quot;, (Array:1))
  #26 /home/xxxxxxxx/public_html/wp-includes/plugin.php(517): WP_Hook-&gt;do_action((Array:1))
  #27 /home/xxxxxxxx/public_html/wp-admin/admin.php(259): do_action(&quot;toplevel_page_CiviCRM&quot;)
  #28 {main}
  </code></pre>
  
Tags: <timezone>
Title: Repeatedly getting this error in CiviCRM WordPress version "1298 ** Unknown or incorrect time zone: 'Europe/Berlin'" - how do I fix this?
ThreadText: # Repeatedly getting this error in CiviCRM WordPress version "1298 ** Unknown or incorrect time zone: 'Europe/Berlin'" - how do I fix this?
  
  (Asked by: username_0 on 2023-02-21)
  
  I've redacted the client name for privacy, but the following appears repeatedly in our CiviCRM error log.  Can someone please help me with an explanation / solution?  Thanks a bunch!
  Feb 21 11:01:04  [debug] $backTrace = #0 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(954): CRM_Core_Error::backtrace("backTrace", TRUE)
  #1 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(945): CRM_Core_Error::exceptionHandler(Object(DB_Error))
  #2 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php(997): PEAR_Error->__construct("DB Error: unknown error", -1, 16, (Array:2), "SET @@time_zone = \"Europe/Berlin\" [nativecode=1298 ** Unknown or incorrect ...")
  #3 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-1, 16, (Array:2), "SET @@time_zone = \"Europe/Berlin\" [nativecode=1298 ** Unknown or incorrect ...")
  #4 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR::_raiseError(Object(DB_mysqli), NULL, -1, 16, (Array:2), "SET @@time_zone = \"Europe/Berlin\" [nativecode=1298 ** Unknown or incorrect ...", "DB_Error", TRUE)
  #5 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1928): PEAR->__call("raiseError", (Array:7))
  #6 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(943): DB_common->raiseError(-1, NULL, NULL, "SET @@time_zone = \"Europe/Berlin\" [nativecode=1298 ** Unknown or incorrect ...", "1298 ** Unknown or incorrect time zone: 'Europe/Berlin'")
  #7 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(413): DB_mysqli->mysqliRaiseError()
  #8 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli->simpleQuery("SET @@time_zone = \"Europe/Berlin\"")
  #9 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common->query("SET @@time_zone = \"Europe/Berlin\"")
  #10 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query("SET @@time_zone = \"Europe/Berlin\"")
  #11 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(494): DB_DataObject->query("SET @@time_zone = \"Europe/Berlin\"")
  #12 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1747): CRM_Core_DAO->query("SET @@time_zone = \"Europe/Berlin\"", TRUE)
  #13 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check/Component/Timestamps.php(39): CRM_Core_DAO::singleValueQuery("SET @@time_zone = \"Europe/Berlin\"")
  #14 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check/Component.php(76): CRM_Utils_Check_Component_Timestamps->checkTimezoneAPIs(FALSE)
  #15 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(215): CRM_Utils_Check_Component->checkAll((Array:0), FALSE)
  #16 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(185): CRM_Utils_Check::checkStatus()
  #17 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Check.php(93): CRM_Utils_Check::checkAll()
  #18 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Page.php(255): CRM_Utils_Check->showPeriodicAlerts()
  #19 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contact/Page/DashBoard.php(57): CRM_Core_Page->run()
  #20 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Contact_Page_DashBoard->run((Array:2), NULL)
  #21 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:17))
  #22 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:2))
  #23 /home/xxxxxxxx/public_html/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:2))
  #24 /home/xxxxxxxx/public_html/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress->invoke("")
  #25 /home/xxxxxxxx/public_html/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters("", (Array:1))
  #26 /home/xxxxxxxx/public_html/wp-includes/plugin.php(517): WP_Hook->do_action((Array:1))
  #27 /home/xxxxxxxx/public_html/wp-admin/admin.php(259): do_action("toplevel_page_CiviCRM")
  #28 {main}
  
  **Tags:** timezone
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2023-02-21. Score: 3
  
  If you have access to root user on your server, you can fix it. On Plesk that command did the job and I don't have the message any more:
  mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uadmin -p`cat /etc/psa/.psa.shadow` mysql
  
  source:
  https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html](https://dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html
  
  > **Comments:**
  > **username_2**: I'm getting the same on Drupal so I assume this is a recent update problem.  My setup is slightly different but the fix is ultimately the same, to load the time Zone info into MySQL using the mysql_tzinfo_to_sql script  
  > **username_0**: Thanks - I do have root access, but I also have 60+ sites on this server, and I'm concerned that reloading the timezone tables globally could have a negative affect on the databases of unrelated sites.  Is there any other way to deal with this issue?  Might creating a new database and importing this one's data into it address it?  Or, could changing the timezone to something else (why was it "Europe/Berlin" in the first place?) possibly address it?  
  > **username_3**: It just checks Europe/Berlin as an example of one that is in the timezone tables - it doesn't mean the site is set to Berlin time. It seems really unlikely loading timezone tables would negatively affect a site - many distributions come with them loaded, and they're needed for db timestamp fields to work properly across DST.  
  > **username_4**: 1. $ ls -la /usr/share/zoneinfo  2. $ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql  
  > **username_2**: All you are doing by adding the Time Zone data files is populating the MySQL or MariaDB instance with this information. Your instance will likely be set to the Server timezone anyway, and if not, adding this data does not change that, it is 'reference' information from what I can understand.  I can well understand your concern about the impact on this global change to other sites, so maybe checking with DBA to review impact is the best thing for you.  
  
  ---
  
  