---
title: "Khắc phục lỗi Database Write"
url: https://phatdev.net/docs/sl-migrations/how-to-fix-database-write-issues
lang: vi
updated: 2026-10-17
alternate:
  en: https://phatdev.net/en/docs/sl-migrations/how-to-fix-database-write-issues
markdown: https://phatdev.net/docs/sl-migrations/how-to-fix-database-write-issues.md
---

# Khắc phục lỗi Database Write

Thuộc bộ tài liệu: [SL Migrations](https://phatdev.net/docs/sl-migrations.md)

> Build phase database hoặc restore step 2 báo lỗi write.

## Database Write Issues

Triệu chứng:
- Build phase database fail với `ER_LOCK_WAIT_TIMEOUT`
- Restore step 2 báo `MySQL server has gone away`
- `max_allowed_packet too small`
- `Got a packet bigger than 'max_allowed_packet' bytes`

## Fix 1: max_allowed_packet

Restore SQL dump lớn cần `max_allowed_packet` đủ lớn.

Tăng giá trị này trong cấu hình MySQL. Trên shared hosting, liên hệ support để được tăng. Trên VPS, sửa file `my.cnf` hoặc `mariadb.conf`:

```
[mysqld]
max_allowed_packet = 256M
```

Sau đó restart MySQL/MariaDB.

## Fix 2: User MySQL thiếu privilege

User restore cần `ALL PRIVILEGES` trên database (gồm CREATE, DROP, INSERT, UPDATE, DELETE, INDEX, REFERENCES, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, TRIGGER, EVENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE).

```sql
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
```

## Fix 3: Disk full

Database server không ghi được khi disk full. Kiểm tra disk free trên server và xóa các log cũ, bin log không cần (`PURGE BINARY LOGS`).

## Fix 4: MySQL crashed / connection drop

Restart MySQL service. Kiểm tra error log của MySQL/MariaDB để tìm nguyên nhân crash.

## Fix 5: innodb_lock_wait_timeout

Restore lớn cần timeout dài hơn:

```
[mysqld]
innodb_lock_wait_timeout = 600
```

## Fix 6: utf8mb4 collation mismatch

Lỗi `Unknown collation: 'utf8mb4_0900_ai_ci'` khi restore database từ MySQL 8 sang MariaDB cũ.

**Fix 1**: Replace collation trong SQL file trước khi import:

```
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' dump.sql
```

**Fix 2**: Tạo database đích với collation tương thích:

```sql
CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

## Tham khảo

- [Database Install](https://phatdev.net/docs/sl-migrations/database-install)
- [Server resources](https://phatdev.net/docs/sl-migrations/how-to-manage-server-resources-cpu-memory-disk)
