Tôi có thể tạo lại lỗi của bạn nếu bộ ký tự phiên của tôi là 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'.
Sau đó, tôi có thể sửa nó bằng cách đặt bộ ký tự phiên để khớp với bảng:
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)
Vì vậy, tôi kết luận rằng bạn đã đặt bộ ký tự phiên thành binary
.
Chạy show session variables like 'char%';
và xem nó nói gì với bạn.