웹서버 1대,MYSQL 서버 1대 이렇게 있을경우 자료 저장시 시간은 어디에 기준을 맞춰야 할까요?
웹서버 1대 , MYSQL 서버 1대가 있는데요
언어는 PHP 입니다
자료를 저장할때 MYSQL 서버에 저장을 하는데
웹서버 시간이랑 저장된 시간이랑 틀리더라구요
(웹서버시간 09:12:30 일때 디비서버는 09:15:07 을 저장해요)
저장할때 사용한 쿼리에 NOW() 라는 함수를 썼는데,웹서버 시간이 아닌
디비서버 시간을 저장하더라구요
웹서버와 MYSQL 서버의 시간을 동기화해서 정확한 시간을 저장할려면?
어떻게 해야할까요?
55글자 더 채워주세요.
2개의 답변이 있어요!
두곳에 시간 기준을 동일기준으로 두시면 됩니다.
한국 서비스의 경우 GMT+09 였던걸로 기억하는데 서버와 DB서버의 시간이 동일하지않은경우 로직상 문제가 되는 경우가 발생할 여지가 있습니다. 데이터 관리상에서도 좋지않구요.
특히나 백업솔루션등을 두개를 연동하여 사용할 경우 안좋은 영향을 미치는 경우가 있으니 반드시 조율 하시길 추천드립니다.
참조하시면 mysql 서버시간 변경하실수있습니다.
간혹 서버가 1대 이상일때 자료 저장시 위와 같은 문제가 발생할 수 있는데요
저장을 할때 쿼리에서 now()를 사용하지 마시구요
웹서버 자체 시간으로 저장을 해주세요
그래야 서버간 시간오차에 따른 시간오류가 안생기는데요
<?php $datetime= date('Y/m/d-H:i:s'); $query = "insert into 테이블 (memo,rdate) values ('메모당','$datetime')"; ?>위와 같이 하시면 db서버의 시간이 아무리 엉터리라고 해도
항상 웹서버 기준으로 시간이 저장이 됩니다