Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL 5.7.20:Kann keinen JSON-Wert aus einer Zeichenfolge mit CHARACTER SET 'binary' erstellen

Ich kann Ihren Fehler reproduzieren, wenn mein Sitzungszeichensatz binary ist :

mysql [localhost] {msandbox} (test) > set names binary;
Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} (test) > insert into tracking_data (route, data, user_id) values ('route', '{"route": "value"}', 1);
ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'.

Dann kann ich es beheben, indem ich den Sitzungszeichensatz so einstelle, dass er mit der Tabelle übereinstimmt:

mysql [localhost] {msandbox} (test) > set names utf8mb4;
Query OK, 0 rows affected (0.00 sec)

mysql [localhost] {msandbox} (test) > insert into tracking_data (route, data, user_id) values ('route', '{"route": "value"}', 1);
Query OK, 1 row affected (0.01 sec)

Daraus schließe ich, dass Sie den Sitzungszeichensatz auf binary gesetzt haben .

Führen Sie show session variables like 'char%'; aus und sieh dir an, was es dir sagt.