grass-mysql(1)
β¨ MySQL DATABASE DRIVER β¨
okay so bestie, welcome to grass-mysql(1) π
this is the GRASS GIS User's Manual page for the MySQL driver, and it's literally the thing that lets GRASS stash your vector attributes in a MySQL server. no cap.
Because vector attribute tables are created automatically when a new vector is written, and the name of the table is the same as the name of the vector, it is good practice to create a new database for each GRASS mapset. π
πΈ Creating a MySQL database πΈ
A new database is created within MySQL:
mysql> CREATE DATABASE mydb;
See the MySQL manual for details. π
π¦ Driver and database name π¦
GRASS modules require 2 parameters to connect to a database. Those parameters are βdriverβ and βdatabaseβ. For MySQL driver the parameter βdriverβ should be set to value βmysqlβ. The parameter βdatabaseβ can be given in two formats:
- Database name β in case of connection from localhost
- String of comma separated list of
key=valueoptions. Supported options are:dbnameβ database namehostβ host name or IP addressportβ server port number
Examples of connection parameters:
db.connect driver=mysql database=mytest
db.connect driver=mysql database=βdbname=mytest,host=test.grass.orgβ
π Data types π
GRASS supports almost all MySQL data types with following limitations:
- Binary columns (
BINARY,VARBINARY,TINYBLOB,MEDIUMBLOB,BLOB,LONGBLOB) are not not supported. If a table with binary column(s) is used in GRASS a warning is printed and only the supported columns are returned in query results. π - Columns of type
SETandENUMare represented as string (VARCHAR). - Very large integers in columns of type
BIGINTcan be lost or corrupted because GRASS does not support 64 bin integeres on most platforms. π (yes bestie, that's a typo in the source, we keep it fr fr) - GRASS does not currently distinguish types
TIMESTAMPandDATETIME. Both types are in GRASS interpreted asTIMESTAMP.
π Indexes π
GRASS modules automatically create index on key column of vector attributes table. The index on key column is important for performance of modules which update the attribute table, for example v.to.db, v.distance and v.what.rast. β¨
π₯ Privileges π₯
Because MySQL does not support groups of users and because only MySQL βrootβ can grant privileges to other users, GRASS cannot automatically grant select privileges on created tables to group of users. it's giving limited tbh.
If you want to give privilege to read data from your mapset to other users you have to ask your MySQL server administrator to grant select privilege to them on the MySQL database used for that mapset. For example, to allow everybody to read data in from your database βmydbβ:
shell> mysql --user=root mysql
mysql> GRANT SELECT ON mydb.* TO ββ@β%β;
π§ Schemas π§
Because MySQL does not support database schemas the parameter βschemaβ of module db.connect should never be set to any value. If you set that parameter for MySQL driver GRASS will try to write tables to the specified schema which will result in errors. π
don't do it bestie. just don't.
π Groups π
MySQL does not support user groups. Any settings specified by βgroupβ parameter of module db.connect are ignored by GRASS for MySQL driver.
π 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 GIS
β SOURCE CODE β
Available at: MySQL DATABASE DRIVER source code (history)
Accessed: Saturday Jan 17 05:40:32 2026
Main index | Topics index | Keywords index | Graphical index | Full index
Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual
and that's the whole page bestie π this was grass-mysql(1) from the GRASS GIS 8.4.2 Reference Manual, source + version + date all up in there β go slay your attributes, periodt β¨
π¦ where this page comes from
- fedora 44: grass 8.4.2-4.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms