Starting with VIVO v1.11.1, the default database of VIVO switched from Jena SDB to Jena TDB. The Jena project 'retired' SDB at the end of 2020. |
VIVO can optionally use MySQL as a backing store for Jena SDB. Whilst VIVO / Jena will create the necessary tables for the triple store, first SDB must be enabled and a database (schema) and authentication details need to have been created.
First, select and enable SDB in applicationSetup.n3 by replacing :hasContentTripleSource :tdbContentTripleSource ; with :hasContentTripleSource :sdbContentTripleSource ;
:application a vitroWebapp:application.ApplicationImpl , vitroWebapp:modules.Application ; :hasSearchEngine :instrumentedSearchEngineWrapper ; :hasSearchIndexer :basicSearchIndexer ; :hasImageProcessor :iioImageProcessor ; :hasFileStorage :ptiFileStorage ; :hasContentTripleSource :tdbContentTripleSource ; :hasConfigurationTripleSource :tdbConfigurationTripleSource ; :hasTBoxReasonerModule :jfactTBoxReasonerModule . |
Next, uncomment the block describing :sdbContentTripleSource
:sdbContentTripleSource a vitroWebapp:triplesource.impl.sdb.ContentTripleSourceSDB , vitroWebapp:modules.tripleSource.ContentTripleSource . |
To create the backing database, log in to MySQL as a superuser (e.g. root)
$ mysql -u root -p Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.9 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE vitrodb CHARACTER SET utf8; mysql> GRANT ALL ON vitrodb.* TO 'vitrodbUsername'@'localhost' IDENTIFIED BY 'vitrodbPassword'; mysql> FLUSH PRIVILEGES; |
For MySQL 8+, the second command must be split into two commands like so:
mysql> CREATE USER 'vitrodbUsername'@'localhost' IDENTIFIED BY 'vitrodbPassword'; mysql> GRANT ALL PRIVILEGES ON vitrodb.* TO 'vitrodbUsername'@'localhost'; mysql> FLUSH PRIVILEGES; |
Finally, you will need to edit runtime.properties
and ensure that the VitroConnection properties are correct for your database engine. They should look something like this.
VitroConnection.DataSource.url = jdbc:mysql://localhost/vitrodb VitroConnection.DataSource.username = vitrodbUsername VitroConnection.DataSource.password = vitrodbPassword |