[ mysql-docker基础版 ]


官方文档

# 拉取mysql8
docker pull mysql

# 数据
-v /my/own/datadir:/var/lib/mysql

# 配置 (一般情况下会读取此文件夹下的.cnf文件)
MySQL的默认配置可以在/etc/MySQL/my.cnf中找到,可能!
包括其他目录,如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。请检查mysql映像中的相关文件和目录以了解更多详细信息。
如果/my/custom/config-file.cnf是您的自定义配置文件的路径和名称,您可以这样启动您的mysql容器(请注意,此命令中只使用自定义配置文件中的目录路径):
/etc/mysql/my.cnf

# 默认秘密
MYSQL_ROOT_PASSWORD=xxxx

# 运行
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

docker-compose.yml

version: '3'
services:
  mysql-8:
    image: mysql:latest
    restart: always
    environment:
      - MYSQL_DATABASE=go_zero
      - MYSQL_ROOT_PASSWORD=chenhaifeng
    ports:
      - "3306:3306"
    volumes:
      - ./datas/mysql/:/var/lib/mysql
      - ./conf/mysql/my.cnf:/etc/mysql/my.cnf
      - ./datas/mysql-files:/var/lib/mysql-files/

my.cnf

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 服务器默认字符集
character-set-server=utf8mb4
# 服务器的默认排序规则
collation-server=utf8mb4_general_ci

进入容器修改内容

docker exec -it xxx /bin/bash

1. 登录
mysql -uroot -p
xxxxx

2. 进入数据库
use mysql;

3. 设置加密方式
alter user 'root'@'%' identified with mysql_native_password by'xxxxxxx';

4. 刷新权限
FLUSH PRIVILEGES;

5. 查询权限
select host, user, plugin from user;