اتصال n8n به MySQL یکی از مهم‌ترین قابلیت‌هایی است که به شما اجازه می‌دهد داده‌های خود را در یک پایگاه داده واقعی مدیریت کنید و به جای ذخیره اطلاعات در فایل‌های ساده یا شیت‌های آنلاین، یک سیستم ساختار یافته و قابل توسعه داشته باشید. با استفاده از این اتصال می‌توانید عملیات‌هایی مانند ثبت داده، ویرایش رکوردها، پاک کردن اطلاعات، ایجاد گزارش و اجرای کوئری‌های پیچیده را بدون نوشتن هیچ کدی مدیریت کنید. MySQL یکی از محبوب‌ترین سیستم‌های مدیریت پایگاه داده در دنیا است و اتصال آن با n8n باعث می‌شود اتوماسیون‌های قدرتمند و کاربردی برای پروژه‌های واقعی بسازید.

چرا اتصال n8n به MySQL اهمیت دارد؟

اتصال n8n به MySQL به شما کمک می‌کند گردش کارهایی بسازید که داده‌ها را به صورت ساختار یافته ذخیره کنند، در نتیجه امکان تولید گزارش‌های دقیق، اجرای محاسبات پیچیده و نگهداری امن داده فراهم می‌شود. این اتصال برای بسیاری از پروژه‌ها ضروری است، از جمله ثبت فرم‌ها، مدیریت کاربران، ساخت داشبورد آماری، تحلیل فروش و ایجاد سیستم‌های خودکار. MySQL همچنین سرعت بالا، پایداری قابل قبول و امکان اجرای کوئری های پیچیده را در اختیار شما قرار می‌دهد.

پیش نیازهای اتصال n8n به MySQL

برای اتصال موفق n8n به MySQL چند پیش نیاز لازم دارید:
۱. نصب n8n نسخه 1.8 یا بالاتر
۲. یک دیتابیس MySQL در سرور واقعی یا لوکال
۳. ساخت یک پایگاه داده مخصوص n8n مثلا codity_db
۴. ایجاد یک کاربر MySQL با سطح دسترسی مناسب
۵. فعال بودن پورت 3306 در صورت استفاده از سرور راه دور

ساخت Credential اتصال MySQL در n8n

اولین مرحله برای اتصال n8n به MySQL ایجاد Credential است. برای این کار:
به Settings وارد شوید و از بخش Credentials گزینه MySQL را انتخاب کنید.
یک نام مشخص مثل MySQL Codity وارد کنید.
lass=”yoast-text-mark” />>در قسمت Host آدرس سرور دیتابیس را وارد کنید.
>در قسمت User و Password اطلاعات کاربر MySQL را قرار دهید.
>در قسمت Database نام پایگاه داده مثلا codity_db را وارد کنید.
گزینه Save را بزنید.
بعد از ساخت Credential n8n می تواند به دیتابیس متصل شود و همه عملیات را اجرا کند.

ایجاد جدول نمونه برای ذخیره داده

قبل از اینکه گردش کار را بسازید باید یک جدول نمونه برای ذخیره اطلاعات داشته باشید. فرض می‌کنیم یک جدول برای ثبت کاربران سایت ایجاد کنیم:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(150),
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

این جدول اطلاعات ساده کاربر شامل نام، ایمیل و تاریخ ثبت را ذخیره می‌کند.

ساخت Workflow برای ذخیره داده ها در MySQL

در این بخش یک گردش کار کامل می‌سازیم که از طریق Webhook اطلاعات را دریافت کرده و در MySQL ذخیره می‌کند.

گام ۱: ساخت Webhook برای دریافت داده

یک Node از نوع Webhook اضافه کنید.
Method را روی POST قرار دهید.
مسیر دلخواه مثل addUser را وارد کنید.
Workflow را ذخیره و Active کنید.
این Webhook داده هایی مثل name و email را دریافت می کند.

گام ۲: اعتبارسنجی داده‌ها با Function

برای جلوگیری از ارسال داده ناقص از Function زیر استفاده کنید. این کد کاملا تست شده و آماده اجرا در n8n v1.8 است:

// n8n v1.8+ ready
const data = $json;
const errors = [];
if (!data.name) errors.push("name");
if (!data.email) errors.push("email");
if (errors.length) {
  return [
    {
      json: {
        ok: false,
        error: "Missing required fields: " + errors.join(", ")
      }
    }
  ];
}
return [
  {
    json: {
      ok: true,
      name: String(data.name).trim(),
      email: String(data.email).trim()
    }
  }
];

این کد اگر ورودی ناقص باشد پیام خطا می‌دهد و در غیر این صورت داده را برای ذخیره آماده می‌کند.

گام ۳: ذخیره اطلاعات در MySQL

یک Node از نوع MySQL اضافه کنید.
Operation را روی Insert قرار دهید.
Table را برابر users وارد کنید.
Fieldها را به صورت زیر پر کنید:
name: {{$json[“name”]}}
email: {{$json[“email”]}}
Credential MySQL خود را انتخاب کنید.

گام ۴: ارسال پاسخ به درخواست کننده

برای ارسال نتیجه به کلاینت از یک Node Respond to Webhook استفاده کنید:

{
  "status": "ok",
  "message": "User created successfully"
}

یا اگر Response Mode را روی Last Node گذاشته اید MySQL آخرین نود خواهد بود.

تست گردش کار با cURL

برای آزمایش از این دستور استفاده کنید:

curl -X POST http://localhost:5678/webhook/addUser \
  -H "Content-Type: application/json" \
  -d '{"name":"Sara","email":"sara@example.com"}'

در صورت موفقیت رکورد جدید در جدول users ثبت می شود.

اجرای کوئری‌های پیشرفته در MySQL Node

MySQL Node امکان اجرای کوئری‌های پیچیده را نیز فراهم می‌کند.

اجرای کوئری دلخواه

SELECT COUNT(*) AS total_users FROM users;

دریافت رکورد بر اساس شرط

SELECT * FROM users WHERE email = 'test@example.com';

بروزرسانی داده

UPDATE users SET name = 'New Name' WHERE email = 'test@example.com';

نکات امنیتی اتصال MySQL

رمز عبور کاربر دیتابیس باید قوی باشد.
دیتابیس را پشت فایروال قرار دهید.
دسترسی کاربر MySQL را محدود کنید.
از SSL برای اتصال سرورهای راه دور استفاده کنید.
از بکاپ گیری دوره‌ای استفاده کنید.

نکات حرفه‌ای برای عملکرد بهتر

از ایندکس برای ستون‌های مهم مثل email استفاده کنید.
برای سرعت بیشتر از LIMIT در کوئری‌ها استفاده کنید.
اگر داده سنگین ذخیره می‌کنید از عملیات Batch در MySQL Node کمک بگیرید.
برای جلوگیری از خطاها قبل از Insert یک Function Validation قرار دهید.

در قسمت بعد

در قسمت هشتم یاد می‌گیرید چگونه با استفاده از Telegram Node پیام‌های خودکار ارسال کنید و یک ربات تلگرام برای سایت یا سیستم اتوماسیون خود بسازید.