0

mysqldabataseでブロッキングの問題があります。

MySqlデータベースを備えたphpWebサイトがあります。すべてが正常に動作します。

1つの古いデータベースサーバーから新しいデータベースサーバーにSQLダンプを配置しただけなので、この新しいサーバーでは奇妙な動作が発生します。

次のようなクエリ:

select * from toto where date(myDateField) between '2001-01-01' and '2012-01-01';

動作しません。つまり、結果は返されません(エラーも返されません)。

私が次のことをした場合:

select * from toto where myDateField between '2001-01-01' and '2012-01-01';

できます。

新しいサーバーでmysqlシステム変数が異なるかどうかを確認しようとしましたが、すべて同じように見えます。奇妙なことに、この新しいサーバーでは、先週すでに別のダンプを配置していて、すべてが正常に機能していました。今はわかりません。

Webサイトは他のサーバーで正常に動作するため、すべてのphpファイルにアクセスして変更することはできません。問題と説明を見つけたいだけです。

誰かがこれについて何かヒントがありますか?

更新しました:

私はもっ​​とテストをしました。同じサーバー上に2つのデータベースがあります。最初のもの(古いダンプを作成したもの)では、すべて問題ありません。2番目(最近のダンプファイルを使用して作成)では、問題が発生します。

だから私は本当に何が問題になるのか分かりません。

4

2 に答える 2

0

私はついにそれを機能させることができました。同じダンプを別の Linux ディストリビューションにインストールしたところ、動作するようになりました。以前は Gentoo を使用していましたが、現在は Ubuntu を使用しています。したがって、Gentoo では何か問題があるに違いありません。

于 2012-05-23T08:00:58.290 に答える
0

最初に、サーバーでどの形式を取得するかを確認します

select date(myDateField) from toto

条件間の形式の使用に基づいて ... 日付形式はサーバーごとに変わる場合があります。つまり、dd//mm//yyyy または yy//mm/dd を確認してください ...

于 2012-05-22T07:50:50.933 に答える