---
title: Write to MySQL
description: Use sql.to() with the mysql driver to write data to MySQL.
url: https://docs.influxdata.com/flux/v0/write-data/sql/mysql/
estimated_tokens: 931
product: Flux
version: v0
---

# Write to MySQL

To write data to [MySQL](https://www.mysql.com/) with Flux:

1. Import the [`sql` package](/flux/v0/stdlib/sql/).
    
2. Pipe-forward data into [`sql.to()`](/flux/v0/stdlib/sql/to/) and provide the following parameters:
    
    -   **driverName**: mysql
    -   **dataSourceName**: *See [data source name](#mysql-data-source-name)*
    -   **table**: Table to write to
    -   **batchSize**: Number of parameters or columns that can be queued within each call to `Exec` (default is `10000`)

```js
import "sql"

data
    |> sql.to(
        driverName: "mysql",
        dataSourceName: "user:password@tcp(localhost:3306)/db",
        table: "example_table",
    )
```

## MySQL data source name

The `mysql` driver uses the following data source name (DSN) syntax (also known as a **connection string**):

```
username:password@tcp(localhost:3306)/dbname?param=value
```

## Flux to MySQL data type conversion

`sql.to()` converts Flux data types to MySQL data types.

| Flux data type | MySQL data type |
| --- | --- |
| float | FLOAT |
| int | BIGINT |
| uint | BIGINT |
| string | TEXT(16383) |
| bool | BOOL (TINYINT) |
| time | DATETIME |

#### MySQL BOOL types

`BOOL` is a synonym supplied by MySQL for convenience. MySQL stores `BOOL` values as `TINYINT` types so looking at the schema shows the column type as `TINYINT`.

#### Related

-   [sql.to() function](/flux/v0/stdlib/sql/to/)
