当前位置: 首页 > news >正文

北京手机网站设计公司益阳建设公司网站

北京手机网站设计公司,益阳建设公司网站,软件应用技术学什么,中小企业网站规划方案在日常开发中,可能会遇到从 MySQL 迁移到 PostgreSQL 的需求。你也许是: 正在准备从传统架构转向云原生;想使用 PostgreSQL 更强的事务与 JSON 支持;想统一团队数据库技术栈;纯粹为了尝试学习不同的数据库系统。 别担…

在日常开发中,可能会遇到从 MySQL 迁移到 PostgreSQL 的需求。你也许是:

  • 正在准备从传统架构转向云原生;
  • 想使用 PostgreSQL 更强的事务与 JSON 支持;
  • 想统一团队数据库技术栈;
  • 纯粹为了尝试学习不同的数据库系统。

别担心,无需手动写导出脚本,无需配置复杂工具,只需借助 Docker 和一个神奇的工具——pgloader,即可轻松完成。


✅ 教程目标

  • 使用 Docker 启动 MySQL 和 PostgreSQL 容器
  • 利用 pgloader 将数据从 MySQL 自动迁移到 PostgreSQL
  • 整个过程无需安装本地数据库,适合所有平台(Windows/Mac/Linux)

🧾 环境准备

你只需要安装好以下软件:

  • Docker Desktop(可从 官网 下载并安装)
  • 命令行终端:Windows 用户可用 PowerShell,Mac/Linux 使用终端即可
  • 一个耐心的你 🧠

🧰 一、提前拉取所需镜像

为了避免容器启动时网络太慢,可以先手动拉取镜像:

# 打开终端 PowerShell 或 bash# 拉取 MySQL 镜像
docker pull mysql# 拉取 PostgreSQL 镜像
docker pull postgres# 拉取 pgloader 镜像
docker pull dimitri/pgloader:latest

🧱 二、启动数据库容器

启动 MySQL 容器

docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=myrootpassword -e MYSQL_DATABASE=mydb -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -p 3306:3306 -v $PWD/mysql_data:/var/lib/mysql mysql

📌 参数解释:

  • -e:设置环境变量,如数据库名、用户名、密码等
  • -v:挂载数据目录,持久化存储
  • -p:将容器端口映射到宿主机
  • $PWD:当前目录(Linux/macOS 下可用,Windows 可用 %cd%

启动 PostgreSQL 容器

docker run -d --name my-postgres -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=mypassword -e POSTGRES_DB=mydb -p 5432:5432 -v $PWD/pgdata:/var/lib/postgresql/data postgres

🌐 三、创建容器网络(让它们“看得见彼此”)

Docker 容器默认在隔离网络中,pgloader 需要两个数据库“互通”,所以需要:

# 创建网络
docker network create pgloader-net# 将两个容器加入该网络
docker network connect pgloader-net my-mysql
docker network connect pgloader-net my-postgres

📦 四、使用 pgloader 执行数据迁移

docker run --rm --network=pgloader-net dimitri/pgloader:latest pgloader mysql://myuser:mypassword@my-mysql:3306/mydb postgresql://myuser:mypassword@my-postgres:5432/mydb

📌 这条命令会:

  • 自动连接两个数据库容器
  • 将所有表结构、索引、数据内容一并迁移
  • 无需写任何 SQL 或导出文件!

✅ 五、迁移成功后如何验证?

你可以使用以下方法验证数据是否成功迁移到 PostgreSQL:

方法 1:进入 PostgreSQL 容器查看数据

docker exec -it my-postgres psql -U myuser -d mydb

然后输入 SQL:

\dt -- 查看所有表
SELECT * FROM 表名 LIMIT 10;

方法 2:使用图形工具连接 PostgreSQL

推荐使用以下客户端工具之一:

  • DBeaver
  • pgAdmin
  • DataGrip
  • Navicat Premium

连接 PostgreSQL,输入如下信息:

  • Host:localhost
  • Port:5432
  • Database:mydb
  • Username:myuser
  • Password:mypassword

🧹 六、清理环境(可选)

如果只是测试或临时使用,可以删除这些容器和网络:

docker rm -f my-mysql my-postgres
docker network rm pgloader-net

也可以删除挂载的卷:

rm -rf ./mysql_data ./pgdata

🧠 常见问题与排查

问题解决办法
容器启动失败检查端口是否被占用,或数据卷权限
pgloader 报错 Connection refused检查网络是否连接、数据库是否正常启动
数据库为空确保 MySQL 中原本就有表和数据;否则 pgloader 无内容可迁移
Windows 下 $PWD 报错改用 %cd%,或手动指定绝对路径,如 C:/Users/xxx/mysql_data:/var/lib/mysql

📌 总结

通过本文你学会了:

✅ 使用 Docker 快速搭建 MySQL 和 PostgreSQL 环境
✅ 使用 pgloader 自动化完成数据迁移
✅ 利用图形化工具查看迁移结果
✅ 清理容器环境保持整洁

http://www.dtcms.com/a/588782.html

相关文章:

  • 网站建设ip微信小程序 做网站
  • 单位网站建设的必要性网站如何被收录
  • 狗贩子怎么做网站卖狗成都网站建设餐饮
  • 如何开发网站自己做站长哪个网站可以做编程题
  • 深圳制作公司网站wordpress 显示微信二维码
  • 微信网站建设费记什么科目中山网站搭建
  • 有关小城镇建设的网站网站是怎么建设的
  • 国外一直小猫做图标的网站centos lnmp wordpress
  • 网站备案不注销有什么后果网站免费注册域名
  • 建网站的重要性内蒙古互联网公司
  • 网站建设价格一览表wordpress主页显示博客
  • 没有ipc备案的网站重庆网站设计找重庆最佳科技
  • 网站建设方案内容wordpress打开失败
  • 艺术网站源码杭州品牌网站建设公司
  • 做网站有什么语言好大型网站响应式
  • asp网站图片前端程序员需要掌握哪些基本技术
  • 网站推广公司新锐投资网站源码
  • 合肥广告公司佛山旺道seo
  • 手机有软件做ppt下载网站有哪些内容吗wordpress怎么进主页
  • 网站粘度计算公式搜索引擎怎么收录网站
  • 网站的数据库怎么备份河南物流最新情况
  • 四川省成华区建设局网站小程序搭建需要什么
  • 深圳网站建设服务联系方式泰州网站推广见效快
  • 如何办网站 论坛怎么找上海网站建
  • 专业网站策划佛山外贸型网站
  • wordpress网站自适应食品 网站源码
  • 公司网站怎么修改做视频大赛推广的网站
  • 网站后台关键词链接怎样做深圳坪山天气预报15天
  • 模板网站多少钱百度电商平台app
  • 站的免费网站创建网站无法播放视频