sql >> Base de Datos >  >> RDS >> Mysql

Mysql 5.7.20:no se puede crear un valor JSON a partir de una cadena con CHARACTER SET 'binary'

Puedo reproducir su error si el conjunto de caracteres de mi sesión es binary :

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'.

Entonces puedo arreglarlo configurando el conjunto de caracteres de la sesión para que coincida con la tabla:

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)

Así que concluyo que ha establecido el conjunto de caracteres de la sesión en binary .

Ejecute show session variables like 'char%'; y mira lo que te dice.