私は休止状態(Hibernate Maven 5.2.15.Final、Mysql-connector Maven 8.0.9-rc)を使用していますが、mysql 5.7はlinuxのlampp環境で使用しています。
私はイタリア(中央ヨーロッパ夏時間)にいて、3月25日になると、接続dbでエラーが発生します:
サーバーのタイムゾーン値 'CEST'が認識されないか、複数のタイムゾーンを表します。タイムゾーンサポートを利用する場合は、サーバーまたはJDBCドライバーを(serverTimezone構成プロパティを介して)構成して、より具体的なタイムゾーン値を使用する必要があります。
Mysqlコンソールで、次を実行しました。
SHOW GLOBAL VARIABLES LIKE 'time_zone';
SET GLOBAL time_zone='Europe/Rome';
しかし、それは持続しませんでした。
次に、my.cnf
ファイル(/ etc/mysql内)に追加しました。
[mysqld]
default-time-zone = 'Europe/Rome'
また:
default_time_zone = 'Europe/Rome'
しかし、dbサーバーはまだ起動しませんでした...
なぜエラーが発生するのですか?誰か助けてくれますか?
ありがとうございました!
あなたの場合、有効なサーバーのタイムゾーンはnot UTCであるため、@ aimanの答えは正しくありません。
Jdbc接続文字列の追加パラメーターを含むいくつかのソリューションをネット上で見つけることができますが、この文字列を変更できない場合があります。
修正方法は次のとおりです。
最初にmysqlにシステムタイムゾーンをインポートします。
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
次に、デフォルトのmysqlサーバーのタイムゾーンを[mysqld]
(または最近のDebian/Ubuntuディストリビューションの/etc/mysql/my.cnf
の/etc/mysql/mysql.conf.d/mysqld.cnf
セクションで実際のサーバーのタイムゾーンに設定します。たとえば:
default_time_zone = Europe/Paris
mysqlを再起動することを忘れないでください
$ Sudo service mysql restart
(またはディストリビューションに応じて適切なコマンド)。
まず、mysqlサーバーのタイムゾーンを確認します。mysql -e "SELECT @@global.time_zone;" -u <mysqluser> -p
。
ほとんどの場合、SYSTEM
である必要があります。
システムのタイムゾーンを見つける:date +”%Z
。
CESTかどうかを確認します。
システムのタイムゾーンを変更する必要があります。
#cd /usr/share/zoneinfo
#ls -l
#rm /etc/localtime
#ln -s /usr/share/zoneinfo/UTC /etc/localtime
次に、mysqlサーバーを再起動します:/etc/init.d/mysqld restart
。
楽しい