Ich habe ursprünglich ein Projekt mit thinkphp5 geschrieben. Um das Emoji-Problem zu lösen, verwendete der Datenbankzeichensatz utf8mb4, was zu diesem Zeitpunkt auf dem Server gut lief. Aus bestimmten Gründen war es kürzlich notwendig, das gesamte System auf einen neuen Server zu übertragen. Aber nachdem ich die Originaldatenbank importiert und das System bereitgestellt hatte, versuchte ich, es auszuführen, aber die Aufforderung kam immer wieder Can't initialize character set utf8mb4
. .
Einige Versuche, die ich bisher gemacht habe (obwohl ich mich noch nicht damit beschäftigt habe, aber ich denke, dass andere Leute aus einigen Ideen lernen können)
Überprüfen Sie die Verbindungsinformationen Ihrer PHP-Systemdatenbank, das ist normal
Bei der Überprüfung der Serverversion stellte ich zunächst fest, dass die installierte Version 5.5.2 war und die MySQL-Version, die utf8mb4 unterstützt, >=5.5.3 erfordert. Nach dem Upgrade bleibt das Problem bestehen
Ändernmy.cnf
um utf8mb4 zum Standardzeichensatz für Verbindungen zu machen (siehe diesen Artikel), das Problem bleibt bestehen
Versuchen Sie, den MySQL-Client auf der Serverseite auszuführenSET NAMES utf8mb4
, und er läuft erfolgreich im MySQL-Client, aber das Problem bleibt bestehen
Versuchen Sie, den Zeichensatz der entsprechenden Bibliothek zu ändern, aber das Problem bleibt bestehen (Aber ich muss sagen, dass ich das für nutzlos halte, was darauf hindeutet, dass dies eher in der Verbindung als im Zugriff stecken bleiben sollte )
Ich habe das oben Genannte versucht, aber das Problem besteht immer noch. Ich weiß nicht, ob Sie eine Anleitung haben?
如果你还是5.5版本,则需要重新cmake或者指定字符集目录。该问题官方文档:https://dev.mysql.com/doc/ref...