1、准备my.cnf文件到指定目录(和基础的增加了一个default_authentication_plugin=mysql_native_password 的身份验证插件配置信息)
原因:官方提到:
该方式可以解决:Authentication plugin ‘caching_ sha2_password‘ cannot be loaded:等类似问题;
2、搭建docker环境 docker compose环境
3、创建需要挂载mysql数据的目录 数据目录,日志目录,配置目录
4、将my.cnf放到和mysql容器内匹配的地方
5、创建docker-compose.yml文件
6、启动 docker compose up -d
ps:我使用sequelpro该mysql连接工具进行连接的时候,又出现了查询不到databases的情况,换一个客户端就可以了
my.conf文件(已经修改配置,可以直接使用)
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
default-authentication-plugin=mysql_native_password
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
docker-compose.yml
version: "1.3"
services:
mysql:
restart: always
image: mysql:8.0
container_name: mysql-dev
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=dev
- MYSQL_ROOT_PASSWORD=123456
- TZ=Asia/Shanghai
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 60s
retries: 1
volumes:
- /var/lib/dockerInfo/composeInfo/volumes/mysqlVolume/var/lib/mysql:/var/lib/mysql
- /var/lib/dockerInfo/composeInfo/volumes/mysqlVolume/etc/my.cnf:/etc/my.cnf
- /var/lib/dockerInfo/composeInfo/volumes/mysqlVolume/var/log/:/var/log