Для підключення MySQL до вашого Next.js проєкту, вам знадобиться використовувати зовнішній пакет, як-от "mysql" або "mysql2". Також, я рекомендую використовувати "next-connect" для простого обробника API-запитів.
Отже, ось кроки, які потрібно виконати:
1. Встановіть потрібні пакети:
npm install mysql2 next-connect
2. Створіть файл .env.local у корені вашого проєкту та додайте налаштування БД:
MYSQL_HOST=your_database_host
MYSQL_USER=your_database_user
MYSQL_PASSWORD=your_database_password
MYSQL_DATABASE=your_database_name
3. Створіть файл /lib/db.js, що експортує функцію для підключення до БД:
import mysql from 'mysql2/promise';
export async function connectToDatabase() {
const connection = await mysql.createConnection({
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
});
return connection;
}
4. Створіть API-route у /pages/api/data.js для обробки запитів до БД:
import nextConnect from 'next-connect';
import { connectToDatabase } from '../../lib/db';
const handler = nextConnect();
handler.get(async (req, res) => {
const connection = await connectToDatabase();
const [rows] = await connection.query('SELECT * FROM your_table_name');
connection.end();
res.json(rows);
});
export default handler;
Тепер ваш проєкт готовий до використання MySQL. Щоб задеплоїти його на shared Linux hosting (cPanel), вам знадобиться налаштувати ваш проєкт для роботи на сервері Node.js. Ви можете дотримуватися наступних кроків:
Встановіть Node.js на вашому shared Linux hosting (якщо він ще не встановлений).
Завантажте ваш проєкт на сервер через FTP або за допомогою файлового менеджера в cPanel.
Запустіть команду npm install у каталозі вашого проєкту на сервері.
Встановіть і налаштуйте менеджер процесів, як-от PM2, для запуску вашого додатка Next.js:
npm install -g pm2
pm2 start npm --name "next-app" -- run start
Тепер ваш Next.js додаток з підключеною MySQL БД має бути задеплоєним на вашому shared Linux hosting