1

Тема: Порадьте по налаштуванню і підключенню MySQL DB до Next.js 13

Шукаю допомоги з налаштуванням і підключенням MySQL БД до Next.js 13 для чергового пет-проєкта...
Я пробую самостійно, знайшов кілька рішень але вони різні і поки не вдалося реалізувати жодне(

Вже вдалося стоворити БД, юзера, таблицю..
Не розумію як підключити це до Next.js і щоб потім можна було задеплоїти на shared Linux hosting (cPanel).

2

Re: Порадьте по налаштуванню і підключенню MySQL DB до Next.js 13

GPT-4 написав:

Для підключення 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

3 Востаннє редагувалося Jarko (06.04.2023 23:08:34)

Re: Порадьте по налаштуванню і підключенню MySQL DB до Next.js 13

*THUMBSUP*  вчора приблизно те саме мені видало.
Там не все грає з роутами з таким підходом: data.js - 404.
Мабуть чатжпт ще не встиг вивчити 13.2, а там роути ще якось інакше працюють. Не встигає)
Апку створюю чз npx create-next-app@latest .
Нюансів купа для новачка, тому й шукав власне людської відповіді. Не знайшов і за гроші. Мабуть таки доведеться читати документацію  *DANCE*