MySQL

MySQL “The server time zone value ‘EEST’ is unrecognized” Hatasının Çözümü

Merhabalar. MySQL’in JDBC sürücüsünün 6. versiyonunu kullanırken daha önce hiç yaşamadığım bir sorunla kaşılaştım. Connection açmaya çalıştığımda şöyle bir hata fırlatılıyordu:

java.sql.SQLException: The server time zone value 'EEST' 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.

Bu hatanın çözümü için yapılması gereken ise connection açılan URL’in sonuna birtakım eklemeler yapmak. Hataya sebebiyet veren URL kullanım şekli:

jdbc:mysql://localhost:3306/DentistProject"

Hatanın çözümü için kullanılacak URL şekli:

jdbc:mysql://localhost:3306/DentistProject?useUnicode=true&useLegacyDatetimeCode=false&serverTimezone=Turkey

Soru işaretinden sonraki ifadeler URL için connection açılırken kullanılcak parametrelerdi. useUnicode=true ifadesi karakter kodlaması ile ilgilidir. useLegacyDatetimeCode=false &serverTimezone=UTC ifadelerinde useLegacyDatetimeCode veritabanı sunucusu ile istemcileri arasında zaman bölgesi (time zone) dönüşümü ile ilgilidir. Biz false diyerek tarih işlemlerinde formatlama işlemleri veritabanının zaman bölgesine göre yapılsın dedik ve olayı veritabanının zaman dilimine yıktık. serverTimezone parametresi de veritabanı sunucusunun zaman bölgesini verdiğimiz parametre.

Bu şekilde MySQL’in istemcisi ile kendi zaman dilimi arasında dönüştürme çabası yerine direk Turkey zaman dilimini işlemlerde kullanmasını söyleyerek hatamızı çözmüş olduk.

Başka bir yazıda görüşene kadar sağlıcakla kalın.

Selam ve Sevgilerime

1 Yorum

  • kafaları yedirten mysql bağlantı hatasını çözdüm sayenizde ellerinize sağlık çok teşekkür ederim

Yorum Yap