快速同步云端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"
即可自动完成远端 → 本地容器的导入。
留言 (1)