必须先启动数据库服务并确认端口连通,再正确配置config/database.yml中development区块的dialect、host、port、user、password等字段,否则buffalo pop create -a会因连接拒绝失败。

你需要在 Buffalo 项目中正确配置 database.yml 文件,让开发环境能连上本地 PostgreSQL 或 MySQL 实例,否则执行 buffalo pop create -a 或 buffalo dev 时会报 “dial tcp 127.0.0.1:5432: connect: connection refused” 类错误,根本无法初始化数据库。
确认数据库服务已运行并监听正确端口
先确保你本地已安装并启动了对应数据库服务:PostgreSQL 默认监听 5432,MySQL 默认监听 3306。用 ps aux | grep postgres 或 systemctl status mysql 验证进程存活;再用 telnet localhost 5432 测试端口是否可通。如果失败,database.yml 写得再准也没用。
这一步不能跳过——Buffalo 不会帮你启动数据库,它只负责连接。
编辑 config/database.yml 文件填入开发环境参数
打开项目根目录下的 config/database.yml,定位到 development: 区块,按实际填写以下字段:
方法一:PostgreSQL(最常用)
development: dialect: "postgres" database: "myapp_development" user: "postgres" password: "your_local_password" host: "localhost" port: 5432 pool: 5 idle_timeout: 180
注意:dialect 必须小写且拼写准确,写成 postgresql 或 pg 会导致 pop 连接器找不到驱动,报错 “unknown dialect”。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
方法二:MySQL
development: dialect: "mysql" database: "myapp_development" user: "root" password: "your_mysql_root_pass" host: "127.0.0.1" port: 3306 sslmode: "false" parseTime: "true"
MySQL 的 host 建议写 127.0.0.1 而非 localhost,避免 Unix socket 连接路径解析失败。
创建数据库并验证配置是否生效
第一步:在终端进入项目根目录;
第二步:执行 buffalo pop create -a;
第三步:观察输出——若看到 created database myapp_development 即成功;若报错 failed to connect to `host=localhost user=postgres database=`: dial error,说明 database.yml 中的 user/password/host/port 至少有一项与真实实例不匹配,需回头逐项核对;
第四步:运行 buffalo db migrate 确认迁移也能走通,证明整个数据库链路就绪。










