Web、APサーバーと同じようにMySQLにもタイムゾーンがあります。
MySQLのタイムゾーンはセッション単位で変更するか、全体を変更するかの2パターンあります。
セッション単位
mysql> set time_zone = '+09:00';
全体
mysql> set global time_zone = '+09:00';
以下で確認
mysql> show variables like 'time_zone'; mysql> show global variables like 'time_zone';
RDSなどの global が使えない環境では全体の変更ができません。
アプリからクエリを実行するときに毎回 set time_zone を入れるしか無いようです、
フレームワーク的にそれができない時は・・・・、now(), current_time()などで検索をおこなうのはやめましょう。