天津做美缝的网站,网页qq音乐在线听,seo信息推广,shtml怎么做网站目录 一、 简介二、操作流程2.1 进入mysql容器2.2 导出 MySQL 数据2.3. 将导出的文件复制到宿主机2.4 创建 Docker Compose 配置2.5 启动新的 Docker 容器2.6 导入数据到新的容器2.7 验证数据2.8 删除旧的容器#xff08;删除操作需慎重#xff09; 三、推荐配置四、写在后面… 目录 一、 简介二、操作流程2.1 进入mysql容器2.2 导出 MySQL 数据2.3. 将导出的文件复制到宿主机2.4 创建 Docker Compose 配置2.5 启动新的 Docker 容器2.6 导入数据到新的容器2.7 验证数据2.8 删除旧的容器删除操作需慎重 三、推荐配置四、写在后面 一、 简介
本人发现自己Docker中Mysql的时区不对导致每次连接数据库都需要设置时区所以考虑进行数据库迁移重新搭建一个正确时间的数据库。
二、操作流程
2.1 进入mysql容器
要进入运行中的 MySQL 容器可以使用以下命令
docker exec -it mysql-old /bin/bash这里的 mysql-old 是你原来容器的名 2.2 导出 MySQL 数据
在容器内部使用 mysqldump 工具导出所有数据库
mysqldump -u root -p --all-databases /tmp/alldb.sql2.3. 将导出的文件复制到宿主机
将 /tmp/alldb.sql 文件从容器复制到宿主机的指定路径
docker cp mysql-old:/tmp/alldb.sql Docker/mysql2.4 创建 Docker Compose 配置
编写 docker-compose.yml 文件配置新的 MySQL 服务
services:mysql:image: mysql:8.4.0container_name: mysql-docker # 设置容器名字ports: # 添加端口映射- 3306:3306volumes:- /Users/siyuan/Docker/mysql/data:/var/lib/mysql # 数据卷- /Users/siyuan/Docker/mysql/conf:/etc/mysql/conf.d # 配置卷- /Users/siyuan/Docker/mysql/logs:/var/log/mysql # 日志卷environment:MYSQL_ROOT_PASSWORD: rootTZ: Asia/Shanghai # 设置时区例如亚洲/上海restart: alwaysdeploy:resources:limits: # 设置合理的资源限制cpus: 0.5 # 限制容器使用半核 CPU 资源memory: 512M # 限制容器使用最多 512MB 内存2.5 启动新的 Docker 容器
在 docker-compose.yml 所在路径下使用 docker-compose up -d 命令启动新的容器。
2.6 导入数据到新的容器
将宿主机上的 SQL 文件导入到新的 MySQL 容器
docker cp Docker/mysql/alldb.sql mysql-docker:/tmp/
docker exec -i mysql-docker mysql -u root -proot /tmp/alldb.sql2.7 验证数据
登录到新的 MySQL 容器检查数据是否成功导入
docker exec -it mysql-docker mysql -u root -p
SHOW DATABASES;连接时如果出现 ❯ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)请在连接时使用 mysql -u root -p -h 127.0.0.12.8 删除旧的容器删除操作需慎重
docker stop mysql-old
docker rm mysql-old三、推荐配置
使用具体版本号的 MySQL 镜像避免使用 latest 标签。设置合理的资源限制避免 MySQL 服务消耗过多宿主机资源。考虑使用 Docker secrets 或环境变量文件来管理密码。确保 MySQL 用户权限设置正确允许从宿主机 IP 地址连接。使用 Docker Compose 的 networks 配置来管理容器网络。实施定期备份策略保障数据安全。
四、写在后面
欢迎关注会经常记录一些工作中遇到的问题。
欢迎随时留言讨论与君共勉知无不答