HibernateとMySQLでタイムゾーンとのトラブル

Codizon:

私は、Tomcat(8.5)とMySQL(v.8.0.12)のconfigureコマンド休止状態(5.3.3決勝)にしようとしています。「:mysqlの:// localhostを:JDBC 3306 /てSakila」私はのようにhibernate.connection.urlセットで私のHibernateTest.java(チュートリアルから非常に単純なコード、ここでは問題ありません)を起動すると、私は次のようなエラーに遭遇しています:

Caused by: java.sql.SQLException: The server time zone value 'Paris, Madrid 
(heure d?été)' is unrecognized or represents more than one time zone. You 
must configure either the server or JDBC driver (via the serverTimezone 
configuration property) to use a more specifc time zone value if you want to 
utilize time zone support.

MySQLは現在、(@@ global.time_zone、@@ session.time_zoneを選択> mysqlの)グローバルおよびセッションのための「システム」のタイムゾーンに設定されています。そして、私のシステムのタイムゾーンは確かにパリ/マドリードです。私のhibernate.cfg.xmlファイルで、私は接続URLを書くとき:

jdbc:mysql://localhost:3306/sakila?useJDBCCompliantTimezoneShift=true;useLegacyDatetimeCode=false;serverTimezone=UTC;

エラーは次のとおりです。

com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near '=false;serverTimezone=UTC;'.

これは、問題は「MySQLサーバのタイムゾーンおよびJDBC接続の問題」stackoverfloxの記事で言及していない、「&」は日食によって拒否されているので、hibernate.cfg.xmlファイルの添付のスクリーンショットを参照してください。

実体「useLegacyDatetimeCode」への参照は、区切り文字で終了しなければなりません「;」

stackoverflowの記事で述べたように「不正な形式のデータベースURL、メインのURLのセクションを解析することができなかったが」と「// localhostの」:それは目に見えない「mysqlの」の間の文字ではありません。マドリード/パリ(ここでは私の場合)のための夏の時間とそのフィット:私は、(デフォルトの時間帯=「00 02」)現地時間用のMySQL Workbenchを介して、オプションを設定することで、周りの問題を仕事にしようとしました。これは、事は変更されません。何か案が?私はどこか別の場所にそれを設定する必要がありますか?あなたの助けをありがとう、私は成功せず、3日間知っているため、このいずれかにしてきました。

Codizon:

私は最終的に解決に出くわしました。そのどちらもが見たよう「;」「&」つ以上のパラメータを追加するトリックを行うだろう、私はすべてのパラメータを取り出し、そして唯一つのパラメータを試してみました:

jdbc:mysql://localhost:3306/sakila?serverTimezone=UTC

そして、それはトリックをした、私はもうこれで問題がありません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=172021&siteId=1