🐘 使用 Docker 在 macOS 上设置 PostgreSQL 的简化指南 🚢

您是否在为 macOS 上的 PostgreSQL 配置而苦恼?

如果您一直在努力解决如下环境变量问题:

DATABASE_URL=postgres://myuser@host.docker.internal:5432/mydb
#OR
DATABASE_URL=postgres://myuser:myuser@127.0.0.1:5432/mydb

你并不孤单!在 macOS 上设置 PostgreSQL 可能会让人望而生畏,因为:

  • ❌ 有限的客户端工具:与 Linux 不同,macOS 缺少像 createuser --interactive -P 这样的简单命令。
  • 📖 文档稀疏:大多数 PostgreSQL 指南适用于 Linux 或 Windows,macOS 用户需要自己弄清楚。
  • 但别担心——我们将介绍一种简单且适合初学者的方法,使用 Homebrew 和 Docker 在 macOS 上设置 PostgreSQL!🎉

    🏆 本指南为何脱颖而出

  • ✅ 清晰的分步说明。
  • 🖥️ 专为 macOS 用户量身定制。
  • 📊 具有预期输出的真实世界示例以供验证。
  • **让我们开始吧!🚀**

    🔧 步骤 1:使用 Homebrew 安装 PostgreSQL

    1️⃣ 使用 Homebrew 安装 PostgreSQL:

    brew install postgresql@16

    2️⃣启动PostgreSQL服务:

    brew services start postgresql@16

    3️⃣验证服务状态:

    brew services info postgresql@16

    您应该看到如下输出:

    postgresql@16 (homebrew.mxcl.postgresql@16)
    Running: ✔
    Loaded: ✔
    Schedulable: ✘
    User: root
    PID: 38646

    💡 **专业提示**

    如果遇到问题,请重新启动服务:

    brew services restart postgresql@16

    🏗️ 第 2 步:创建 PostgreSQL 用户和数据库

    1️⃣ 访问 PostgreSQL 交互式 shell:

    psql postgres

    示例输出:

    ❯ psql postgres
    psql (14.13 (Homebrew), server 16.4 (Homebrew))
    WARNING: psql major version 14, server major version 16.
             Some psql features might not work.
    Type "help" for help.

    2️⃣创建用户和数据库

  • 创建用户
  • CREATE USER myuser WITH PASSWORD 'user';

    预期输出:

    CREATE ROLE
  • 创建数据库:
  • CREATE DATABASE mydb;

    预期输出:

    CREATE DATABASE
  • 授予访问权限:
  • GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

    预期输出:

    GRANT

    🔗 步骤 3:连接到数据库

    现在,让我们测试连接以确保一切正常。使用以下命令进行连接:

    psql -U myuser -d mydb -p 5432

    预期输出:

    ❯ psql -U myuser -d mydb -p 5432
    
    psql (14.13 (Homebrew), server 16.4 (Homebrew))
    WARNING: psql major version 14, server major version 16.
             Some psql features might not work.
    Type "help" for help.
    
    mydb=>

    🛠️常见问题及解决方案

    1️⃣ 连接被拒绝

  • 原因:防火墙或不正确的 host.docker.internal。
  • 解决方案:使用 127.0.0.1 进行测试或检查 Docker 网络设置
  • 2️⃣ 版本不匹配警告

  • 原因:使用较旧的 psql 客户端。
  • 解决方案:更新您的客户端以匹配服务器版本。
  • 🎯 下一步是什么?

  • 🔍 探索您的数据库。
  • 🛠️开始构建应用程序。
  • ⚙️ 对于基于 Docker 的项目,使用 host.docker.internal 配置 DATABASE_URL。
  • 现在,您已准备好像专业人士一样在 macOS 上处理 PostgreSQL!🚀

    如果您喜欢本指南,请不要忘记与您的同事分享!🧑‍💻👩‍💻

    如果您有任何问题或建议,请在下面发表评论。让我们让每个人都能无缝配置 PostgreSQL!🌟