> ## Documentation Index
> Fetch the complete documentation index at: https://docs-beta.new-host.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Baza Danych MySQL

> Konfiguracja bazy danych dla FiveM

## Tworzenie Bazy

<Steps>
  <Step title="Panel NEW-HOST">
    Otwórz swój serwer → Zakładka **"Bazy danych"**
  </Step>

  <Step title="Nazwa">
    Wpisz nazwę (np. `fivem_db`)
  </Step>

  <Step title="Utwórz">
    Kliknij **"Stwórz nową"**
  </Step>

  <Step title="Zapisz Dane">
    Panel pokaże:

    * **Nazwa bazy**: Pełna z prefiksem (np. `srv1_fivem_db`)
    * **Adres IP**: Serwer MySQL
    * **Użytkownik**: Login
    * **Hasło**: Kliknij ikonę oka aby zobaczyć
  </Step>
</Steps>

## Connection String

### Format

```
mysql://użytkownik:hasło@ip:3306/nazwa_bazy?charset=utf8mb4
```

### Przykład

```
mysql://srv1_abc123:MojeHaslo@195.137.244.32:3306/srv1_fivem_db?charset=utf8mb4
```

## Dodanie do server.cfg

### Przez Edytor Plików

<Steps>
  <Step title="Otwórz server.cfg">
    Panel → **"Pliki"** → `server.cfg`
  </Step>

  <Step title="Dodaj Connection String">
    **PRZED** `ensure oxmysql` dodaj:

    ```
    # Baza danych
    set mysql_connection_string "mysql://srv1_abc:Pass@195.137.244.32:3306/srv1_db?charset=utf8mb4"

    # Załaduj oxmysql
    ensure oxmysql

    # Frameworki wymagające bazy
    ensure es_extended
    ```
  </Step>

  <Step title="Zapisz i Restart">
    Zapisz i zrestartuj serwer
  </Step>
</Steps>

<Warning>
  Connection string MUSI być **przed** `ensure oxmysql`!
</Warning>

### Przez txAdmin

Jeśli używasz txAdmin Recipe (ESX/QBCore), connection string jest konfigurowany automatycznie podczas instalacji.

## Import Struktury Bazy

### Przez txAdmin Recipe (Zalecane)

Jeśli używasz txAdmin Recipe:

1. Recipe automatycznie importuje wszystkie tabele
2. Nie musisz ręcznie importować plików SQL

### Ręczny Import przez phpMyAdmin

<Steps>
  <Step title="Pobierz Plik SQL">
    Znajdź plik SQL w zasobie (np. `esx_legacy.sql`)
  </Step>

  <Step title="Otwórz phpMyAdmin">
    Zaloguj się używając danych z panelu
  </Step>

  <Step title="Wybierz Bazę">
    Kliknij nazwę swojej bazy
  </Step>

  <Step title="Import">
    * Zakładka **"Import"**
    * Wybierz plik `.sql`
    * Kliknij **"Wykonaj"**
  </Step>
</Steps>

## Weryfikacja Połączenia

Sprawdź konsolę po restarcie:

<Check>
  ```
  [oxmysql] Database connection established
  [oxmysql] Successfully connected to database
  ```
</Check>

<Warning>
  Błędy:

  ```
  [mysql] Access denied for user
  [mysql] Unknown database
  [mysql] Can't connect to MySQL server
  ```

  Sprawdź dane połączenia w panelu
</Warning>

## Obsługiwane Biblioteki MySQL

### oxmysql (Zalecane)

Najnowsza i najszybsza:

```
set mysql_connection_string "mysql://..."
ensure oxmysql
```

### mysql-async (Starsza)

Dla starszych zasobów:

```
set mysql_connection_string "mysql://..."
ensure mysql-async
```

### ghmattimysql (Przestarzałe)

<Warning>
  Nie jest już wspierane - zalecamy migrację do oxmysql
</Warning>

## Backup Bazy

### Przez phpMyAdmin

<Steps>
  <Step title="Zaloguj">
    phpMyAdmin z danymi z panelu
  </Step>

  <Step title="Wybierz Bazę">
    Kliknij nazwę bazy
  </Step>

  <Step title="Eksport">
    * **"Eksport"**
    * Format: **SQL**
    * **"Wykonaj"**
  </Step>

  <Step title="Zapisz">
    Plik `.sql` zostanie pobrany
  </Step>
</Steps>

## Częste Problemy

<AccordionGroup>
  <Accordion title="Access denied for user">
    **Rozwiązanie**:

    * Sprawdź dane w panelu NEW-HOST
    * Upewnij się że nie ma spacji w connection string
    * Użyj dokładnych danych z panelu (ikona oka przy haśle)
  </Accordion>

  <Accordion title="Unknown database">
    **Rozwiązanie**:

    * Użyj pełnej nazwy z prefiksem (np. `srv1_nazwa`)
    * Sprawdź czy baza została utworzona w panelu
  </Accordion>

  <Accordion title="Can't connect to MySQL server">
    **Rozwiązanie**:

    * Sprawdź adres IP w panelu
    * Upewnij się że port to 3306
    * Sprawdź connection string pod kątem błędów
  </Accordion>

  <Accordion title="Serwer crashuje po uruchomieniu">
    **Przyczyna**: Błąd w connection string lub brak oxmysql

    **Rozwiązanie**:

    * Sprawdź składnię connection string
    * Upewnij się że `ensure oxmysql` jest po connection string
    * Sprawdź logi w konsoli
  </Accordion>
</AccordionGroup>

## Następne Kroki

<CardGroup cols={2}>
  <Card title="txAdmin Recipe" icon="book" href="/fivem/txadmin/recipes">
    Zainstaluj ESX/QBCore automatycznie
  </Card>

  <Card title="Zarządzanie Zasobami" icon="box" href="/fivem/txadmin/resources">
    Dodaj skrypty do serwera
  </Card>
</CardGroup>
