mysql 1366 错误解决

2019/12/29 技术

mysql 1366 错误解决

问题描述

在配置某个服务时,使用到 mysql docker 服务。启动服务出现错误, 查看日志, 发现操作 mysql 时出现如下错误提示:

Error 1366: Incorrect string value: '\xE8\x8A\x9D\xE9\xBA\xBB...' for column 'Code' at row 1

解决方案

检索后,得知,是 mysql 服务端与客户端 编码不匹配造成的。

客户端使用 utf8mb4 编码。

mysql 启动 docker 时,没指定服务端编码,通过在 mysql 启动命令中增加

--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

重启 docker 后,问题解决。

mysql docker-compose.yml配置 如下:

    mysql-server:
        image: mysql:5.7
        container_name: mysql-server
        hostname: mysql-server
        volumes:
            - db-mysql:/var/lib/mysql
        environment:
            - MYSQL_ROOT_PASSWORD=data123
            - MYSQL_DATABASE=data
            - MYSQL_USER=data
            - MYSQL_PASSWORD=data123
        command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
        networks:
            - data-network

Search

    Table of Contents