docker-compose mysql后命令行查询乱码(问号)

docker 启动用,用命令进入mysql容器,查询数据乱码(问号)

#进入mysql docker
docker exec -it 50bde2256149 bash

#登陆mysql
mysql -uroot -proot

#查询
use mall
select * from product limit 1\G

select 后乱码

按网上教程查询默认字符集

#查询默认字符集 
show variables like 'character_set%';

发现 character_set_database 和 character_set_server都是utf8

有的文章说是docker-compose里加入command参数--character-set-server=utf8(文章

查询docker-compose.yml里mysql部分,

 mysql:
    image: mysql:5.7
    container_name: mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root #设置root帐号密码
    ports:
      - 3306:3306
    volumes:
      - /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载
      - /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载
      - /mydata/mysql/log:/var/log/mysql #日志文件挂载

发现没问题

拿navicat连接数据库查看,发现中文显示正常,看起来数据库没问题,那就是查询环境有问题

最终是这个文章解决,进入mysql docker的时候,增加参数 env LANG=C.UTF-8

 docker exec -it 50bde2256149 env LANG=C.UTF-8  bash

再查询中文显示正常。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页