首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql:将字符集更改为UTF-8

Mysql:将字符集更改为UTF-8
EN

Stack Overflow用户
提问于 2020-05-26 09:38:45
回答 1查看 2.7K关注 0票数 1

我正在尝试建立与docker-mysql的汇合点。我已经遵循了我能在网上找到的所有指令,汇合部仍在给我Your database must be configured to either use utf8 or utf8mb4 as the default character set.

这是我的船坞-写作:

代码语言:javascript
复制
version: '3.3'
services:
  db:
    image: mysql:5.7
    volumes:
            - ./mycustom.cnf:/etc/mysql/conf.d/my.cnf
    restart: always
    command: --sql_mode=""
    environment:
      MYSQL_DATABASE: bachelorarbeit_database
      # So you don't have to use root, but you can if you like
      MYSQL_USER: horizon
      # You can use whatever password you like
      MYSQL_PASSWORD: 1P@ssw0rt123
      # Password for root access
      MYSQL_ROOT_PASSWORD: P@ssw0rt
      MYSQL_ROOT_USER: root
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - '3310:3306'

下面是与docker- mycustom.cnf位于同一个目录中的

代码语言:javascript
复制
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row

这是my.cnf文件

代码语言:javascript
复制
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-06 04:24:37

默认情况下,在创建带有的MySQL数据库时,它默认为latin1。

您可以通过在db服务中传递以下命令来覆盖该命令:

代码语言:javascript
复制
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0

我不知道--sql_mode=""在做什么--只是将一个参数传递给默认命令?如果是这样的话,您可能会将其添加到参数列表中。

一旦重新启动容器,就可以登录mysql one并运行以下SQL来确认它现在是UTF-8:

代码语言:javascript
复制
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| utf8                     | utf8_unicode_ci      |
+--------------------------+----------------------+
1 row in set (0.00 sec)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62019044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档