2025/09/172025/09/17技术约 1 分钟144 字

docker部署mysql中文乱码问题

image

今天docker部署mysql,不知道什么原因中文乱码了,估计是字符集没有设置为utf8

原本的docker-compose.yaml配置为

version: "3.9"

services:
  mysql:
    image: mysql:8.0
    container_name: askos-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: askos
      TZ: Asia/Shanghai
    ports:
      - "13306:3306"
    volumes:
      - ./data/mysql-data:/var/lib/mysql
      - ./scripts/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql:ro

后面在网上找到相关记录,sql脚本需要指定一下字符集

/*!40101 SET NAMES utf8 */;

然后执行docker-compose down && rm -rf data && docker-compose up -d

navicat连接发现表的中文注释也乱码,后面搜了一下教程,发现navicat高级里面也可以设置字符集utf8

image

设置完后表中的注释和中文字符都正常显示

参考文章:

Navicat连接mysql数据库记录中文乱码的解决方法

评论区