使用docker-compose的方式部署mysql
registry.cn-hangzhou.aliyuncs.com/baimeidashu/mysql:8.0.23
registry.cn-hangzhou.aliyuncs.com/kattgatt-base/mysql:8.0.42
2、编写docker-compose.yaml
version: '3.1'
services:
mysql-db:
container_name: mysqlwiki
image: registry.cn-hangzhou.aliyuncs.com/baimeidashu/mysql:8.0.23
ports:
- "3308:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: example.123A
TZ: Asia/Shanghai
MYSQL_CHARSET: utf8
MYSQL_COLLATION: utf8_bin
volumes:
- "./mysqldata:/var/lib/mysql"
- "./config:/etc/mysql/conf.d"
- "./my.cnf:/etc/my.cnf"
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_bin
--explicit_defaults_for_timestamp=true
--transaction-isolation=READ-COMMITTED
my.cnf
#dvice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
character-set-server=utf8mb4
collation-server=utf8mb4_bin
default-storage-engine=INNODB
max_allowed_packet=256M
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
log_bin_trust_function_creators = 1
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
方式2:
version: '3.1'
services:
mysql-db:
# 指定容器的名称
container_name: mysql
# 指定镜像和版本
image: mysql:8.0
ports:
- "3306:3306"
restart: always
environment:
# 配置root密码
MYSQL_ROOT_PASSWORD: example
volumes:
# 挂载数据目录
- "/apps/mysql/datadir:/var/lib/mysql"
# 挂载配置文件目录
- "/apps/mysql/config:/etc/mysql/conf.d"
想配置 可以创建一个 vim /apps/mysql/config /my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
把文件放进去,就可以,重启docker-compose 。会自动用这个配置文件的。
运行:
docker-compose up -d
检测:
docker ps

支持navicat 连接需要:
docker exec -it mysql /bin/bash
mysql -uroot -pexample
alter user 'root'@'%' identified with mysql_native_password by 'example';
检测,我们用 workbench 测试连接, navicat 需要修改加密插件

导入数据:


欢迎来撩 : 汇总all
