Maison >Java >javaDidacticiel >Pourquoi le pilote MySQL JDBC 5.1.33 génère-t-il une exception SQL concernant le fuseau horaire du serveur ?
Une application Web Java utilisant le pilote JDBC 5.1.23 n'a rencontré aucun problème lors de la connexion à une base de données MySQL 5.5. Cependant, lors de la mise à niveau vers la version 5.1.33 du pilote, Tomcat a commencé à rencontrer une exception au démarrage de l'application. Le message d'erreur a incité à enquêter sur la raison pour laquelle une telle erreur s'est produite.
L'erreur rencontrée était :
WARNING: Unexpected exception resolving reference java.sql.SQLException: The server timezone value 'UTC' is unrecognized or represents more than one timezone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc timezone value if you want to utilize timezone support.
Pour corriger ce problème, il a été déterminé que le pilote MySQL JDBC 5.1.33 nécessite des spécification du paramètre serverTimezone dans la chaîne de connexion pour la prise en charge du fuseau horaire UTC. Ceci est réalisé en ajoutant ce qui suit à la chaîne de connexion :
?serverTimezone=UTC
Cet ajout garantit que le pilote utilise le fuseau horaire spécifié pour les opérations temporelles, résolvant l'exception et permettant à l'application de fonctionner correctement. La chaîne de connexion modifiée apparaît donc comme suit :
jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!