Trying to launch Crucible, get "The server time zone value 'EDT' is unrecognized" in logs on failure
Asked by Brad Costa:

Over the weekend our fisheye/crucible instance stopped working. After troubleshooting this morning I found the ODBC drive was missing. I installed the latest version from MySQL and now when I try to launch the applications I receive the error "The server time zone value 'EDT' is unrecognized or represents more than one time zone." in the logs and the applications fail to launch.


Answers:
author: Danyal Iqbal
body: Who kidnapped the ODBC driver? It should not go missing by itself.

Which mysql version? v6 or above?

Previous version need to specify the timezone explicitly.

e.g from SO.

    jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

    jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

comments: author: Brad Costa
body: Thank you. And yes, the first thing I thought was, "where the heck did the driver go." But, I am saving that manhunt for after getting it running again. My version of MySQL is "mysql Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using EditLine wrapper." I am worried the fisheye/crucible database have become corrupt. When I run the command you suggested, twice, I get:

root@ubuntu:\~# jdbc:mysql://localhost/db?useUnicode=true\&useJDBCCompliantTimezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC  
\[1\] 18032  
\[2\] 18033  
-su: jdbc:mysql://localhost/db?useUnicode=true: No such file or directory  
\[3\] 18034  
root@ubuntu:\~# jdbc:mysql://localhost/db?useUnicode=true\&useJDBCCompliantTimezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC  
\[4\] 18039  
\[5\] 18040  
-su: jdbc:mysql://localhost/db?useUnicode=true: No such file or directory  
\[6\] 18041  
\[1\] Exit 127 jdbc:mysql://localhost/db?useUnicode=true  
\[2\] Done useJDBCCompliantTimezoneShift=true  
\[3\] Done useLegacyDatetimeCode=false


author: Brad Costa
body: I also tried applying this to my connection string in the crucible/fisheye config.xml file but the Apache XML parser barfs on the character after the '?'.

Problem with config file: org.apache.xmlbeans.XmlException: error: Unexpected character encountered (lex state 12): 'u'


author: Danyal Iqbal
body: You need to investigate what happened over the weekend before you try anything else. It sounds like a botched attempt at db migration.

This is definitely a bug in mysql v5.

If you are not allowed to define the timezone in the connection string than you need to add it to the mysql config file on your db.server. e.g

default_tim_zone='+05:00' in /etc/mysql/mysql.conf.d/mysql.cnf in mysqlis section- depending on your mysql installation.

Restart the db for new settings to take effect.


author: Brad Costa
body: So it turns out you are correct. Long story short, I inherited management of these tools when I came onboard. Those here before me had no experience with them and were just, "trying them out." So it looks like sometime in that past someone tried to go from the 4.4.x release to the current 4.5.3 but it didn't work. When I started the 4.4 version it was fine. I will redo the update later and hopefully have better success. Thank you for your assistance.