grass-mysql(1grass) Grass User's Manual grass-mysql(1grass)NAME
grass-mysql - MySQL driver
MySQL driver MySQL driver in GRASS MySQL database driver in GRASS enables GRASS to store vector attributes in MySQL server.
Because vector attribute tables are created automaticaly 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 kye=value options. Supported options are:
dbname - database name
host - host name or IP address
port - 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 col-
umn(s) is used in GRASS a warning is printed and only the supported columns are returned in query results.
Columns of type SET and ENUM are represented as string (VARCHAR).
Very large integers in columns of type BIGINT can be lost or corrupted because GRASS does not support 64 bin integeres on
most platforms.
GRASS does not currently distinguish types TIMESTAMP and DATETIME. Both types are in GRASS interpreted as TIMESTAMP.
Indexes
GRASS modules automaticaly 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 automaticaly
grant select privileges on created tables to group of users.
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.
Groups
MySQL does not support user groups. Any settings specified by 'group' parameter of module db.connect are ignored by GRASS for MySQL driver.
SEE ALSO
db.connect, SQL support in GRASS GIS
Credits
Development of the driver was sponsored by Faunalia (Italy) as part of a project for ATAC.
AUTHOR
Radim Blazek
Last changed: $Date: 2011-02-07 18:59:50 +0100 (Mon, 07 Feb 2011) $
Help Index
GRASS 6.4.2grass-mysql(1grass)
Check Out this Related Man Page
grass-pg(1grass) Grass User's Manual grass-pg(1grass)NAME
grass-pg - PostgreSQL driver
PostgreSQL driver PostgreSQL driver in GRASS The driver name is 'pg'.
Creating a PostgreSQL database
A new database is created with 'createdb', see the PostgreSQL manual for details.
Connecting GRASS to PostgreSQL
# example for connecting to a PostgreSQL server:
db.connect driver=pg database="host=myserver.osgeo.org,dbname=mydb"
# password is asked interactively if not specified:
db.login user=myname [pass=secret]
db.connect -p
db.tables -p
Supported SQL commands
All SQL commands supported by PostgreSQL. It's not possible to use C-like escapes (with backslash like
etc) within SQL syntax.
Operators available in conditions
All SQL operators supported by PostgreSQL.
Adding an unique ID column
Import vector module require an unique ID column which can be generated as follows in a PostgreSQL table:
echo "
ALTER TABLE mytable ADD ID integer;
CREATE SEQUENCE mytable_seq;
UPDATE mytabe SET ID = nextval('mytable_seq');
DROP SEQUENCE mytable_seq;
" | db.execute
Attribute Converters
CSV import into PostgreSQL:
h copy
COPY t1 FROM 'filename' USING DELIMITERS ',';
pg2xbase: DBF to PostgreSQL converter.
Geometry import from PostgreSQL table
v.in.db creates a new vector (points) map from a database table containing coordinates. See here for examples.
PostGIS: PostgreSQL with vector geometry
PostGIS: adds geographic object support to PostgreSQL.
Example: Import from PostGIS
In an existing PostGIS database, create the following table:
CREATE TABLE test
(
id serial NOT NULL,
mytime timestamp DEFAULT now(),
text varchar,
wkb_geometry geometry,
CONSTRAINT test_pkey PRIMARY KEY (id)
) WITHOUT OIDS;
# insert value
INSERT INTO test (text, wkb_geometry)
VALUES ('Name',geometryFromText('POLYGON((600000 200000,650000
200000,650000 250000,600000 250000,600000 200000))',-1));
# register geometry column
select AddGeometryColumn ('postgis', 'test', 'geometry', -1, 'GEOMETRY', 2);
GRASS can import this PostGIS polygon map as follows:
v.in.ogr dsn="PG:host=localhost dbname=postgis user=neteler" layer=test
output=test type=boundary,centroid
v.db.select test
v.info -t test
Geometry Converters
PostGIS with shp2pgsql:
shp2pgsql -D lakespy2 lakespy2 test > lakespy2.sql
e00pg: E00 to PostGIS filter, see also v.in.e00.
GDAL/OGR ogrinfo and ogr2ogr: GIS vector format converter and library, e.g. ArcInfo or SHAPE to PostGIS.
ogr2ogr -f "PostgreSQL" shapefile ??
SEE ALSO
db.connect, db.execute,
Database management in GRASS GIS,
Help pages for database modules,
SQL support in GRASS GIS
PostgreSQL web site,
pgAdmin graphical user interface
Book: PostgreSQL: Introduction and Concepts by Bruce Momjian
PostgreSQL Documentation
PostgreSQL Technical Documentation
GDAL/OGR PostgreSQL driver documentation
MapServer Wiki
Last changed: $Date: 2011-02-07 18:59:50 +0100 (Mon, 07 Feb 2011) $
Help Index
GRASS 6.4.2grass-pg(1grass)