├── conf
├── data
├── logs
├── sql
│ └── flush-user.sql
└── start
├── docker-compose.yml
└── start.sh
version: '3'
services:
mysql:
image: mysql:8.0.30
container_name: mysql
command:
# MySQL8的密码验证方式默认是 caching_sha2_password,但是很多的连接工具还不支持该方式
# 就需要手动设置下mysql的密码认证方式为以前的 mysql_native_password 方式
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
# docker的重启策略:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: Qy@Admin@123@! # root用户的密码
MYSQL_USER: qy # 创建新用户
MYSQL_PASSWORD: Qy@Admin@123@! # 新用户的密码
ports:
- 3306:3306
volumes:
- ./../data:/var/lib/mysql
- ./../conf:/etc/mysql/conf.d
- ./../logs:/logs
- ./../sql:/docker-entrypoint-initdb.d
networks:
- mysql
networks:
mysql:
driver: bridge
flush-user.sql
-- 比如想给用户user赋予数据库[db]所有的表的权限并且不限制root用户的连接地址,代码如下
-- 刷新权限
-- ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Qy@Admin@123@!';
grant all privileges on *.* to 'root'@'%';
flush privileges;
conf下可以添加 my.cnf 文件 sql目录下,容器启动执行
=======================================
------------- docker-compose -------------
version: '3'
services:
mysql:
restart: always
image: qydockerhub/mysql:8.0.20.1
container_name: mysql8
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=Qy@Admin@123@!
volumes:
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/mysql/my.cnf
- ./mysql-files:/var/lib/mysql-files
Content type
Image
Digest
sha256:d8ceb9714…
Size
136 MB
Last updated
about 4 years ago
docker pull qydockerhub/mysql:8.0.30