快速同步云端Mysql到本地Mysql测试
2025 年 11 月 25 日 • 笔记
如何使用`docker exec`命令进行数据同步。

起因

之前改博客都是直接在生产环节直接操作Mysql库,最近再重构和修改BUG,所以打算本地也搭建一个Mysql,但是不想用安装包的方式安装,就使用了docker安装在本地。电脑上使用的DataGrip来管理数据库的,他没办法像Navicat直接远端拷贝过来,所以想办法弄一个快速同步的方案。

过程

搭建本地mysql

yaml
复制代码
services: mysql: image: mysql:8.0.41 container_name: mysql8 restart: unless-stopped ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: rootpassword123 MYSQL_DATABASE: nuxt3_blog MYSQL_USER: myuser MYSQL_PASSWORD: mypassword

执行docker compose -f mysql_docker.yml up -d创建容器

plain
复制代码
# 远端数据库配置 REMOTE_HOST=10.0.0.8 REMOTE_PORT=3306 REMOTE_DB=prod_db REMOTE_USER=admin REMOTE_PASS='Abc123!' # 本地 docker 容器 MySQL 配置 LOCAL_CONTAINER=mysql8 LOCAL_DB=mydatabase LOCAL_USER=myuser LOCAL_PASS='mypassword'

设置后,你只需执行:

plain
复制代码
docker exec -i "$LOCAL_CONTAINER" sh -c \ "mysqldump -h $REMOTE_HOST -P$REMOTE_PORT -u $REMOTE_USER -p$REMOTE_PASS $REMOTE_DB" \ | docker exec -i "$LOCAL_CONTAINER" mysql -u "$LOCAL_USER" -p"$LOCAL_PASS" "$LOCAL_DB"

即可自动完成远端 → 本地容器的导入。

上一篇
开发
pre标签踩坑
关于插件化开发的一些构思

留言 (1)

昵称(必填)
邮箱(必填)
网址(选填)
头像
崔话记9天前
是增量同步吗?
补陋阁-阁主的头像
补陋阁-阁主9天前
@崔话记:
是增量同步吗?
不是增量同步,是全量覆盖的。