docker-compose 部署 mysql
先创建一个 mysql文件夹用于存储db文件
mkdir mysql
然后创建 docker-compose 文件
vim docker-compose.yml
写入内容
version: '3.1'
services:
mysql:
container_name: mysql
image: mysql/mysql-server:5.7
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: database
MYSQL_ROOT_PASSWORD: password
MYSQL_ROOT_HOST: '%'
restart: always
volumes:
- "./data/mysql/db:/var/lib/mysql"
- "./data/mysql/config/my.cnf:/etc/my.cnf"
db 的数据挂载到 .data/mysql/db/下
config 挂载到./data/mysql/config/ 下, 所以要先在 docker-compose.yml 同级目录下创建一下文件夹及文件
-data
-mysql
-config
my.cnf
-db
my.cnf 的内容为以下
[mysqld]
bind-address = 0.0.0.0
max_connections=200
max_connect_errors=10
character-set-server=utf8
[mysql]
default-character-set=utf8
[client]
port=3306
弄好这些后就可以用 docker-compse up -d 启动mysql
结束服务用docker-compose down
如果没有启动成功可以用docker logs -f mysql 来查看log
这里可能会出现mysql 初始化异常
--initialize specified but the data directory has files in it. Aborting.w
我这里尝试了 给 data 目录下的文件夹赋了775权解决,如果没有解决,可以参考以下stackoverflow的这个帖子
记得服务器开放3306 的端口
其他文章