如何在Next.js中使用.env连接MySQL?附示例代码
Next.js 中使用 .env 文件连接 MySQL 示例
1. 配置环境变量
在项目根目录创建 .env.local 文件(Next.js 会自动加载该文件的环境变量),填入你的 MySQL 配置信息:
# MySQL 连接配置 MYSQL_HOST=你的数据库主机地址 MYSQL_USER=数据库用户名 MYSQL_PASSWORD=数据库密码 MYSQL_DATABASE=目标数据库名称
注意:不要使用
NEXT_PUBLIC_前缀,这类敏感信息仅需在服务端可用,带该前缀的变量会暴露给前端,存在安全风险。
2. 安装依赖
使用 npm 或 yarn 安装 mysql2(mysql 包已停止维护,推荐使用 mysql2):
npm install mysql2 # 或使用 yarn yarn add mysql2
3. 创建数据库连接池
在项目中新建 lib/db.js 文件,编写连接池代码:
import mysql from 'mysql2/promise'; // 创建 MySQL 连接池 const pool = mysql.createPool({ connectionLimit: 100, host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE, }); export default pool;
4. 使用连接池操作数据库示例
以 Next.js API 路由为例,创建 pages/api/fetch-data.js:
import pool from '../../lib/db'; export default async function handler(req, res) { if (req.method !== 'GET') { return res.status(405).json({ message: '仅支持 GET 请求' }); } try { // 执行查询 const [rows] = await pool.query('SELECT * FROM 你的表名'); res.status(200).json(rows); } catch (error) { res.status(500).json({ error: error.message }); } }
注意事项
- 务必将
.env.local添加到.gitignore文件中,防止敏感信息提交到代码仓库 - 生产环境部署时,直接在部署平台(如 Vercel、Netlify)的环境变量面板配置对应参数,无需上传
.env.local - 优先使用
mysql2/promise提供的异步 API,适配 Next.js 的异步编程逻辑
内容的提问来源于stack exchange,提问作者Sert Nayong
相关产品推荐
相关产品推荐

