docker中升级mysql到最新版本

1.官网查看最新版本情况。

https://dev.mysql.com/downloads/mysql/

2.拉取最新版本镜像到本地。

docker pull mysql:9.7.2

3.将data相关目录复制出来,另外启动一个容器。

cp -r mysql9 mysql9_new

修改docker-compose.yml 和conf下的my.cnf中的端口配置

my.cnf

复制代码
[mysqld]
port=3307
#允许最大连接数
max_connections=3000
#允许连接失败的次数。
max_connect_errors=100
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
innodb_buffer_pool_size = 4G
group_concat_max_len=1024000
log_bin_trust_function_creators=1
default-time-zone='+8:00'
interactive_timeout=31536000
wait_timeout=31536000
log_timestamps=system
character-set-server=utf8mb4
collation-server =utf8mb4_0900_ai_ci
init_connect='SET NAMES utf8mb4'
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION


[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4

docker-compose.yml

复制代码
services:
  mysql:
    image: mysql:9.7.2
    container_name: mysql9-3307-prod-9.7.2
    restart: unless-stopped
    ports:
      - "3307:3307"
    volumes:
      - /data/mysql9_new/data:/var/lib/mysql
      - /data/mysql9_new/conf/my.cnf:/etc/my.cnf      
      - /data/mysql9_new/logs:/var/logs 
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - TZ=Asia/Shanghai

4.进入到当前目录,启动容器:

docker compose -f docker-compose.yml up -d

5.启动之后,使用navicat连接,测试新的数据库是否能正常访问,数据库是否都存在。

6.新的能正常访问,然后将新的和旧的容器都停止,然后修改新的端口为旧的端口,随后启动新的容器。

docker stop mysql9-3307-prod

docker stop mysql9-3308-prod

7.排查问题,查看容器日志

docker logs -f mysql9-3308-prod

相关推荐
Shadow(⊙o⊙)1 小时前
MySQL复合查询
数据库·mysql
L·S·P6 小时前
25MB 管理 100+ 种数据库:开源轻量客户端 DBX 介绍与上手
数据库·mysql·开源·database·dbx
Shadow(⊙o⊙)9 小时前
MySQL内置函数
数据库·mysql
夜雪一千9 小时前
MySQL 常用 DEFAULT 默认值一览表
mysql
誰能久伴不乏10 小时前
保姆级 Docker 入门教程
docker·容器·eureka
快乐的木子李10 小时前
mysql-26.7.0-linux26.7.0下载安装
数据库·mysql
知行产研11 小时前
易控智驾:毛利率跃升17.2个百分点,矿山无人驾驶从“规模换增长“迈入“盈利拐点“
数据库·mysql
可涵不会debug12 小时前
第一次学 LangGraph:用一个快递案例搞懂 State、Node、Edge 和 compile
服务器·数据库·mysql
用户2504581060913 小时前
数据库索引为什么会失效?从执行计划理解 SQL 性能优化
sql·mysql
此时不提桶,更待何时13 小时前
03-04-B-连接池与DB治理面试与生产事故实战
mysql·面试