码迷,mamicode.com
首页 > 数据库 > 详细

mysql容器乱码问题

时间:2020-05-09 18:56:37      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:spring   pac   javascrip   命令   height   结束   apple   ted   utf-8   

在docker-compose.yml文件中定义mysql导入utf-8的万国码

services:

  mysql:

    image: mysql:5.7

#    command: [‘--character-set-server=utf8mb4‘, ‘--collation-server=utf8mb4_unicode_ci‘]

    volumes:

      - ./data/docker/mysql:/var/lib/mysql

      - ./mysql/:/docker-entrypoint-initdb.d/

      - ./conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf

      - ./sqlfile:/app/sqlfile

    environment:

      - "MYSQL_DATABASE=apigateway-ai"

      - "MYSQL_USER=appuser"

      - "MYSQL_PASSWORD=123456"

      - "MYSQL_ROOT_PASSWORD=root"

    ports:

        - "3306:3306"

    restart: always

    logging:

      driver: "json-file"

      options:

        max-size: “1g”

启动spring Boot框架后,web平台显示乱码。

技术图片

进入mysql容器,查看字符集mysql> show variables like ‘%char%‘;
发现character_set_client和character_set_server等字符集仍然不是utf-8;

解决:在宿主机的cnf文件中定义字符集default-character-set = utf8mb4,再映射到容器里,同时取消compose文件中导入utf-8的command命令。

# For explanations see

# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[client]

default-character-set = utf8mb4   #定义字符集

[mysql]

default-character-set = utf8mb4   #定义字符集

[mysqld]

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

datadir = /var/lib/mysql

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

lower-case-table-names=1    #解决数据库读取区分大小写问题

重启docker后,web平台显示正常。

结束。

 

mysql容器乱码问题

标签:spring   pac   javascrip   命令   height   结束   apple   ted   utf-8   

原文地址:https://www.cnblogs.com/liusingbon/p/12846699.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!