docker方式mysql设置字符集

本文介绍如何在Docker中部署MySQL并设置默认字符集为UTF8,以解决中文存储问题。通过在启动容器时指定参数,可以确保MySQL支持中文字符,避免数据存储异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在docker上部署mysql时,mysql的默认字符集是latin1,这样如果日后有中文会出现异常,不能存储等,因为latin1是不支持中文的。

所以需要将字符集调整为utf8。

方法:

  • 首先启动mysql容器的时候使用命令:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

这样启动之后的字符集是,查看字符集:

show variables like 'character_set_%';

 

docker扩展与补充

查看容器:

  docker ps -a

进入容器:

  docker exec -it 容器id bash

    例如:docker exec -it 9400df9b1e54 bash

重启容器:

  docker restart 容器id

    例如:docker restart 9400df9b1e54

停止容器:

  docker stop 容器id

    例如:docker stop 9400df9b1e54

删除容器:

  docker rm 容器id
  例如:docker rm 9400df9b1e54(镜像ID)
 

转载于:https://www.cnblogs.com/116970u/p/10784320.html

### 如何在 Docker 中安装 MySQL设置其自动启动 要在 Docker 中安装 MySQL 并将其配置为开机自动启动,可以按照以下方式操作: #### 1. 安装 DockerMySQL 确保已正确安装 Docker。如果尚未安装,请先完成 Docker 的安装过程。 通过运行以下命令来拉取官方的 MySQL 镜像: ```bash docker pull mysql:latest ``` 创建并启动一个新的 MySQL 容器时,可以通过 `--restart` 参数指定容器的重启策略[^4]。例如,使用 `unless-stopped` 策略表示除非手动停止该容器,否则它将在系统重新启动后自动启动。 ```bash docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d --restart unless-stopped mysql:latest ``` #### 2. 对于已有容器启用自动启动 如果已经有一个正在运行的 MySQL 容器,则可以直接更新它的重启策略以实现自动启动功能: ```bash docker update --restart unless-stopped my-mysql ``` #### 3. 设置 Docker 自身的开机自启 (适用于 Linux) 为了使上述设置生效,还需要保证 Docker 服务本身能够在操作系统启动时被激活。这通常涉及对系统的初始化脚本进行调整。对于基于 systemd 的发行版(如 Ubuntu),可执行如下命令来启用 Docker 的开机自启[^3]: ```bash systemctl enable docker ``` #### 4. 进一步优化与安全措施 - **端口映射**: 若要让外部设备能够访问此数据库实例,记得将主机上的某个端口号绑定至容器内部的服务端口(默认情况下为3306)[^3]。例如,在启动新容器的时候加入 `-p 3306:3306` 参数。 - **字符集设定**: 推荐进入 MySQL 控制台并通过 SQL 命令更改客户端和服务端之间的通信编码格式为 UTF-8 ,从而避免因区域差异引发的数据乱码现象 。 可采用单条语句形式简化处理流程:`SET NAMES 'utf8';`. --- ### 示例代码片段 以下是完整的示例脚本用于快速部署具有持久化存储支持以及适当参数配置的一个 MySQL 实例,并且设置了合理的重启行为: ```bash #!/bin/bash # 创建数据卷目录 mkdir -p /data/mysql # 启动带持久化的 MySQL 容器 docker run \ --name=mysql-server \ -v /data/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=rootpasswordhere \ -p 3306:3306 \ --restart=always \ -d mysql:latest ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值