Deploy Mysql 8.0.36 via Docker in Ubuntu 22.04
走了些弯路,记录下。
用 docker compose 部署的,docker-compose.yml
内容如下:
version: '3'
services:
db:
image: mysql:8.0.36
restart: always
container_name: mysql8
command:
--max_connections=500
environment:
- MYSQL_ROOT_PASSWORD=your_password
volumes:
- /opt/docker/mysql8.0.36/datadir:/var/lib/mysql
- /opt/docker/mysql8.0.36/config/my.cnf:/etc/mysql/my.cnf
ports:
- 3306:3306
MySQL 8.0.36 镜像的选择,在 https://hub.docker.com/_/mysql,选择了 8.0.36。想改它的 max_connections,后来发现进它的 container 里,vi 命令无法使用,想改一下 my.cnf 都改不了。网上说用 apt 命令安装下,但在这 container 里,连 apt 命令也用不了。后来注意到有 8.0.36-debian 版本,后者应该是基于 debian 的,试了下,可以用 apt 命令。但是在阿里云,apt 命令无法下载。
最后,用了上面的 docker-compose.yml
,在宿主机上,/opt/docker/mysql8.0.36/config/my.cnf
内容如下:
[mysqld]
character-set-server=utf8mb4
default-time-zone='+8:00'
innodb_rollback_on_timeout='ON'
max_connections=500
可以不用映射 /etc/mysql/my.cnf
,直接在 command 里加上 --max_connections=500
也可以。
当有多个 command 时,用数组形式,如:
command:
- --max_connections=500
- --log-bin