ローカル マシンの Vagrant ボックスで Laravel 4 アプリを実行しています。さらに、ライブ デモ サーバーにも同じアプリ (GitHub を使用) があります。
これで、全文検索に MATCH と AGAINST を使用する検索機能ができました。ライブ デモ サーバーでは問題なく動作しますが、ローカル マシンでは General error: 1271 Illegal mix of collations for operation 'match' が発生します。
これを解決するためにオンラインで見つけることができるすべてを試しました。テーブルとデータベースの照合順序、および列自体を確認しましたが、それらはすべて utf8_unicode_ci と一致しています。エンコーディングはutf8です。
これがライブ デモ サーバーでは機能するのに、ローカル マシンでは機能しない理由を理解するのに苦労しています。
データベース エンジンは MyISAM です。
誰でもここで私を助けてくれますか。私は本当にこれにこだわっています。
インターネットで見つけた SequalPro でこのクエリを実行しました。
SELECT table_schema, table_name, column_name, character_set_name, collation_name
FROM information_schema.columns
WHERE collation_name = 'utf8_general_ci'
ORDER BY table_schema, table_name,ordinal_position;
そして、information_schema、mysql、および performance_schema がすべて utf8_general_ci に設定されていることがわかりました。これを変更するにはどうすればよいですか?Vagrantでの最善の方法は何ですか? ありがとう。
編集:同じクエリを使用してライブデモサーバーをチェックしたところ、そこにあるinformation_schemaもutf8_general_ciですが、mysql照合はさまざまです。では、これがサーバーではなくローカルにどのように影響するのでしょうか。私に別の何かを指しています。
編集:新しいデータベースを作成して再移行しようとしましたが、喜びはありませんでした。これは、Vagrant のセットアップに関係しているに違いありません。