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。
浙公网安备 33010602011771号