休止状態での「サーバーのタイムゾーン値 'AEST' が認識されない」問題の修正
エラー「サーバーのタイムゾーン値 'AEST」 「認識されないか、複数のタイムゾーンを表しています」は、MySQL がサーバーのタイムゾーンを認識できず、 JDBC ドライバーには明示的なタイムゾーン構成がありません。この問題を解決するには:
1.接続 URL でサーバーのタイム ゾーンを指定する:
JDBC 接続 URL にserverTimezone パラメーターを追加します。このパラメータは、MySQL が使用するタイムゾーンを指定します。この場合、System.out.println(TimeZone.getDefault()) によって出力されるデフォルトのタイムゾーンに基づいて、タイムゾーンを「UTC」または「オーストラリア/メルボルン」に設定できます。
jdbc:mysql://localhost:3306/database?serverTimezone=UTC
2. Hibernate プロパティでserverTimezone を設定します:
Hibernate 設定ファイル (通常は hibernate.cfg.xml) 内に、次のプロパティを追加します:
<property name="hibernate.connection.serverTimezone">UTC</property>
3. MySQL コネクタのアップグレード:
古いバージョンの MySQL コネクタを使用している場合は、タイム ゾーン管理を完全にはサポートしていない可能性があります。互換性を向上させるために、新しいバージョン (8.0 以降など) にアップグレードしてみてください。
4.サーバーのタイム ゾーンが認識されていることを確認します:
serverTimezone パラメーターで指定されたタイム ゾーンが MySQL サーバーによって認識され、サポートされていることを確認します。これを確認するには、MySQL で次のクエリを実行します:
SELECT * FROM mysql.time_zone WHERE name = 'UTC';
5. JDBC タイム ゾーン サポートを有効にする:
まれに、JDBC ドライバーでタイム ゾーンを完全にサポートするために追加の構成が必要になる場合があります。具体的な手順については、ドライバーのドキュメント (例: [MySQL Connector J](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html)) を参照してください。
注: 通常、短縮または短縮されたタイム ゾーンの代わりに、特定のタイム ゾーン (例: 「UTC」) を使用することをお勧めします。夏時間への移行などの潜在的な問題を避けるために、あいまいなもの (例: 「AEST」) を使用します。
以上がHibernate で「サーバーのタイムゾーン値「AEST」が認識されません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。