注解

导航

Docker 安装Mysql

Mysql 版本:8.4.4

参考文章:https://blog.csdn.net/donkor_/article/details/139879575

 

1. 拉取镜像

docker pull mysql:8.4.4

2. 创建挂在msyql容器的目录

mkdir -p xxxx/mysql/{conf,data,log}

3. 创建my.cnf配置文件

在conf目录下,创建my.cnf配置文件,内容如下

[client]
#设置客户端默认字符集utf8mb4
default-character-set=utf8mb4
[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过30天的日志,以免日志堆积造过多成服务器内存爆满。2592000秒等于30天的秒数
binlog_expire_logs_seconds = 2592000
#解决MySQL8.0版本GROUP BY问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
#允许最大的连接数
max_connections=1000
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'

 4. 启动mysql容器

docker run \
-p 3306:3306 \
--restart=always \
--name war-mysql \
--privileged=true \
-v /Volumes/Mac-SSD-1/Dev/Docker/Mysql/log:/var/log/mysql \
-v /Volumes/Mac-SSD-1/Dev/Docker/Mysql/data:/var/lib/mysql \
-v /Volumes/Mac-SSD-1/Dev/Docker/Mysql/config/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=xxxxxxxxxx \
-d mysql:8.4.4

-p表示端口映射
--restart=always表示容器退出时总是重启
--name表示容器命名
--privileged=true表示赋予容器权限修改宿主文件权利
-v /home/mysql/log:/var/log/mysql表示容器日志挂载到宿主机
-v /home/mysql/data:/var/lib/mysql表示容器存储文件挂载到宿主机
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf表示容器配置文件挂载到宿主机
-e MYSQL_ROOT_PASSWORD=a12bCd3_W45pUq6表示设置mysql的root用户密码,建议用强密码
-d表示后台运行

5. 访问Mysql

通过客户端连接Mysql 8.0以上版本时,有可能报错:mysql Public Key Retrieval is not allowed,这通常是因为在使用SSL加密连接时,客户端尝试自动检索服务器的公钥,但根据配置不允许这样做。

可以在JDBC URL中添加 allowPublicKeyRetrieval=true。

posted on 2025-02-09 18:10  注解  阅读(132)  评论(0)    收藏  举报