MySQL database driver enables GRASS to store vector attributes in MySQL embedded database without necessity to run MySQL server.

## Driver and database name

GRASS modules require 2 parameters to connect to a database. Those parameters are 'driver' and 'database'. For MySQL embedded driver the parameter 'driver' should be set to value 'mesql'. The parameter 'database' is a full path to the directory where database tables are stored. The best place is a directory in the mapset. The directory must be created before use of the driver. In the name of database it is possible to use 3 variables:

- $GISDBASE - path to current GISBASE
- $LOCATION_NAME - name of current location
- $MAPSET - name of current mapset

Examples of connection parameters:

    db.connect driver=mesql database='$GISDBASE/$LOCATION_NAME/$MAPSET/mysql'
    db.connect driver=mesql database=/home/user1/db

## Data types, indexes

For more information about supported data types and indexes see the documentation for MySQL (mysql) driver.

## Database type

Because database closing was found very slow if InnoDB was used, the InnoDB storage is disabled by default (hardcoded '--skip-innodb' server option).

## Note

The embedded server is started with hardcoded '--bootstrap' option to avoid warning about missing "mysql.time_zone_leap_second table". This can be fixed in future.

## Troubleshooting: SQL syntax error

Attempting to use a reserved SQL word as column or table name will result in a "SQL syntax" error. The list of reserved words for MySQL can be found in the MySQL manual.

## AUTHOR

Radim Blazek

Credits: Development of the driver was sponsored by Faunalia (Italy) as part of a project for ATAC.

## SEE ALSO

db.connect, SQL support in GRASS