私はもともと thinkphp5 を使用してプロジェクトを作成していましたが、絵文字の問題を解決するために、データベースの文字セットは当時サーバー上でうまく動作していた utf8mb4 を使用していました。最近、何らかの理由により、システム全体を新しいサーバーに移行する必要があります。ただし、元のデータベースをインポートしてシステムをデプロイした後、それを実行しようとしましたが、「Can'tInitializecharacter set utf8mb4
」というメッセージが何度も表示されました。 。
これまでに私が行った試みのいくつか (私はまだ取り組んでいませんが、他の人はいくつかのアイデアから学ぶことができると思います)
php システムのデータベース接続情報を確認してください。正常です。
サーバーのバージョンを確認したところ、インストールされているバージョンは 5.5.2 であり、utf8mb4 をサポートする MySQL のバージョンには 5.5.3 以上が必要であることがわかりました。アップグレード後も問題は残ります。
my.cnf
を変更して、utf8mb4 を接続のデフォルトの文字セットにします (この記事を参照してください)。問題は残ります。
サーバー側の mysql クライアント SET NAMES utf8mb4
を実行してみます。mysql クライアントでは正常に実行されますが、問題は残ります
対応するライブラリの文字セットを変更してみましたが、問題は残りました (しかし、これは無駄だと言わざるを得ません。これは、これを接続ではなく接続内で固定する必要があることを示唆しています)アクセス###)# #####
上記のことを試しましたが、問題はまだ残っています。何か指導があるか分かりませんが?
まだバージョン 5.5 を使用している場合は、cmake を再作成するか、文字セット ディレクトリを指定する必要があります。この問題に関する公式ドキュメント: https://dev.mysql.com/doc/ref...