آموزش دستورات بکاپ و ریستور پایگاه‌داده در MySQL پرینت


# 🔄 آموزش دستورات بکاپ و ریستور پایگاه‌داده در MySQL

پشتیبان‌گیری منظم از پایگاه‌داده‌ها یکی از حیاتی‌ترین وظایف مدیر سیستم است. MySQL ابزارهای خط فرمانی مانند `mysqldump` و `mysql` را برای این منظور فراهم می‌کند که در تمام سیستم‌عامل‌های لینوکسی قابل استفاده هستند.

---

## 🔐 پیش‌نیازها

قبل از شروع، مطمئن شوید که:

* به سرور MySQL دسترسی دارید.
* کاربر شما مجوزهای لازم را برای خواندن و نوشتن دیتابیس دارد.
* ابزارهای `mysqldump` و `mysql` نصب هستند (بخشی از بسته MySQL/MariaDB هستند).

---

## 📦 بخش اول: پشتیبان‌گیری (Backup)

### ✅ ۱. بکاپ کامل از یک پایگاه‌داده

```bash
mysqldump -u root -p mydb > mydb_backup.sql
```

---

### ✅ ۲. بکاپ از چند دیتابیس خاص

```bash
mysqldump -u root -p --databases db1 db2 db3 > multi_backup.sql
```

---

### ✅ ۳. بکاپ از تمام دیتابیس‌ها

```bash
mysqldump -u root -p --all-databases > all_backup.sql
```

---

### ✅ ۴. بکاپ فقط از ساختار (بدون داده)

```bash
mysqldump -u root -p --no-data mydb > mydb_schema.sql
```

---

### ✅ ۵. بکاپ فقط از داده‌ها (بدون ساختار جداول)

```bash
mysqldump -u root -p --no-create-info mydb > mydb_data_only.sql
```

---

### ✅ ۶. بکاپ با فشرده‌سازی gzip

```bash
mysqldump -u root -p mydb | gzip > mydb_backup.sql.gz
```

---

## 🔁 بخش دوم: بازیابی (Restore)

### ✅ ۷. بازیابی یک پایگاه‌داده از فایل SQL

```bash
mysql -u root -p mydb < mydb_backup.sql
```

> ⚠️ قبل از ریستور، پایگاه‌داده باید ایجاد شده باشد (اگر در فایل `CREATE DATABASE` موجود نیست):

```bash
mysql -u root -p -e "CREATE DATABASE mydb;"
```

---

### ✅ ۸. بازیابی چند دیتابیس با دستور `--databases`

```bash
mysql -u root -p < multi_backup.sql
```

---

### ✅ ۹. بازیابی فایل فشرده‌شده gzip

```bash
gunzip < mydb_backup.sql.gz | mysql -u root -p mydb
```

---

### ✅ ۱۰. بازیابی دیتابیس از فایل `all_backup.sql`

```bash
mysql -u root -p < all_backup.sql
```

---

## 🧰 ابزارهای کمکی و نکات پیشرفته

### 🔄 بررسی جدول‌های خاص

برای بکاپ فقط یک جدول:

```bash
mysqldump -u root -p mydb users > users_table.sql
```

---

### 📅 زمان‌بندی بکاپ با `cron`

ویرایش Cronjob:

```bash
crontab -e
```

افزودن بکاپ روزانه:

```bash
0 2 * * * mysqldump -u root -pYourPass mydb > /backup/mydb_$(date +\%F).sql
```

> توجه: برای امنیت، بهتر است رمز عبور را در فایل `.my.cnf` ذخیره کرده و از آن استفاده کنید.

---

## 🛡️ امنیت بکاپ‌ها

* بکاپ‌ها را در سرور جداگانه یا فضای ابری (مثل S3, FTP یا Google Drive) نگه دارید.
* دسترسی به فایل بکاپ را محدود کنید (`chmod 600`).
* حتماً از رمزنگاری در بکاپ‌های حساس استفاده کنید (مثلاً با `gpg` یا `openssl`).

---

## ✅ جمع‌بندی

با استفاده از ابزارهای `mysqldump` و `mysql` می‌توانید به سادگی از دیتابیس‌های MySQL بکاپ گرفته و در مواقع نیاز، آن‌ها را بازیابی کنید. انجام منظم این عملیات به شما کمک می‌کند از **از دست رفتن داده‌ها در زمان بحران جلوگیری** نمایید.

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت