Sign inSign up

qydockerhub/mysql

By qydockerhub

•Updated about 4 years ago

Image
0

376

qydockerhub/mysql repository overview

⁠8.0.30 版本

⁠1. 目录结构

├── conf
├── data
├── logs
├── sql
│   └── flush-user.sql
└── start
    ├── docker-compose.yml
    └── start.sh

⁠2. docker-compose.yml

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

⁠3.flush-user.sql脚本

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;

⁠其他mysql版本

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

Tag summary

Content type

Image

Digest

sha256:d8ceb9714…

Size

136 MB

Last updated

about 4 years ago

docker pull qydockerhub/mysql:8.0.30