Setting up an OrientDB server on Ubuntu
Published: Sat, 19 Jan 2013
Go to the directory you want to install OrientDB.
cd /opt
Download one of the two flavors of <a title="OrientDB" href="http://www.orientdb.org/" target="_blank">OrientDB</a> (standard or graph edition). (If you don’t know which to take, pick the Graph Ed.)
sudo wget https://s3.amazonaws.com/orientdb/releases/orientdb-1.3.0.tar.gz
#sudo wget https://s3.amazonaws.com/orientdb/releases/orientdb-graphed-1.3.0.tar.gz
Unpack the file
sudo tar -zxvf orientdb-1.3.0.tar.gz
I usually remove the tar.gz file and add a symlink
sudo rm orientdb-1.3.0.tar.gz
sudo ln -s orientdb-1.3.0/ orientdb
Configure the default orientdb password. (I use vi, you use your own favorite editor ;))
sudo vi orientdb/config/orientdb-server-config.xml
Go to the section [orient-server > storages > storage] in the xml, change the default username and password and save the file
<!-- Default in-memory storage. Data are not saved permanently. -->
<storage path="memory:temp" name="temp" userName="yourUsername" userPassword="yourPassword" loaded-at-startup="true" />
Get the root password for later use or/and add your own preferred account in [orient-server > users]: (I prefer to remove the root account and add a new one)
<user name="yourUsername" password="yourPassword" resources="*"/>
As the file is holding passwords it might be a good idea to remove the read permission for other users.
sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml
Create a user that will run the server:
# -d, --home-dir HOME_DIR home directory of the new account
# -M, --no-create-home do not create the user's home directory
# -r, --system create a system account
# -s, --shell SHELL login shell of the new account (/bin/false = no login)
# -U, --user-group create a group with the same name as the user
sudo useradd -d /opt/orientdb -M -r -s /bin/false -U orientdb
Change ownership of orientdb directory/links:
sudo chown -R orientdb.orientdb orientdb*
Modify the user group rights so that users in the orientdb group can invoke shell scripts.
sudo chmod 775 /opt/orientdb/bin
sudo chmod g+x /opt/orientdb/bin/*.sh
sudo usermod -a -G orientdb yourUsername
Copy the init.d script:
sudo cp orientdb/bin/orientdb.sh /etc/init.d/
Update the init.d script with this sed script or just edit the file. (The copied one)
sudo sed -i "s|YOUR_ORIENTDB_INSTALLATION_PATH|/opt/orientdb|;s|USER_YOU_WANT_ORIENTDB_RUN_WITH|orientdb|" /etc/init.d/orientdb.sh
And change the following lines, we use sudo because our system account does not have a login shell.
# You have to SET the OrientDB installation directory here (if not already done so)
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"
#su -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./server.sh 1>../log/orientdb.log 2>../log/orientdb.err &" - $ORIENTDB_USER
sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./server.sh 1>../log/orientdb.log 2>../log/orientdb.err &"
#su -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./shutdown.sh 1>>../log/orientdb.log 2>>../log/orientdb.err &" - $ORIENTDB_USER
sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./shutdown.sh 1>>../log/orientdb.log 2>>../log/orientdb.err &"
Update the rc.d dirs
cd /etc/init.d
sudo update-rc.d orientdb.sh defaults
The server will now start and stop on startup/shutdown. For now we start it by hand.
sudo /etc/init.d/orientdb.sh start
Verify that it is running by opening the studio (e.g. http://localhost:2480/) or run 'sudo /etc/init.d/orientdb.sh status'.
Now we can log in and create a new database, Start the console:
/opt/orientdb/bin/console.sh
Create a new database:
create database remote:/yourDatabaseName yourUsername yourPassword local
Done. Grab a beer, you’ve earned it. ;)