Docker部署Mysql
使用docker-compose
部署mysql
项目
目录结构
E:\docker\mysql
├─conf
├─db
├─log
└─mysql-files
shell
docker-compose
使用 docker-compose
来配置mysql
容器的密码,配置及挂载等
docker-compose.yml
文件与上目录结构同级
- docker-compose.yml
version: '2'
services:
mysql:
container_name: "mysql"
#network_mode: "host" #本地需要注释掉,服务端取消注释
environment:
MYSQL_ROOT_PASSWORD: "admin"
MYSQL_USER: 'root'
MYSQL_PASS: 'admin'
image: "mysql:8.0.11"
restart: always
ports:
- 3306:3306
volumes:
- "./db:/var/lib/mysql"
- "./conf:/etc/mysql"
- "./log:/var/log/mysql"
- "./mysql-files:/var/lib/mysql-files"
yml
运行容器
使用终端(TERMINAL
)或者命令提示符(CMD
)运行
cd E:\docker\mysql
docker-compose up -d
shell
外界访问配置
进入容器
- Windows
winpty docker exec -it mysql bash
//若失败,可使用
docker exec -it mysql bash
shell
- Linux
docker exec -it mysql /bin/bash
shell
登陆Mysql
mysql -u root -p
shell
输入密码admin
创建用户
create user xujiayi@'%' identified by '123456';
shell
设置外界访问权限
grant all privileges on *.* to xujiayi@'%' with grant option;
shell
刷新权限
flush privileges;
shell
退出mysql
exit;
shell
退出容器
exit
shell
Nodejs连接
对于mysql8.0
及以上版本,由于nodejs
原因,还需要额外增加一条
ALTER USER xujiayi@'%' IDENTIFIED WITH mysql_native_password BY '123456';
shell
然后再刷新权限
flush privileges;
shell