Want to start instances of RethinkDB on system startup? See Start RethinkDB at system startup to learn how to set up RethinkDB with
This document describes how to start RethinkDB from the command line in several configurations, from a single instance on one machine to multiple instances on multiple machines.
To start the first RethinkDB instance, run this command in your terminal:
$ rethinkdb info: Creating directory /home/user/rethinkdb_data info: Listening for intracluster connections on port 29015 info: Listening for client driver connections on port 28015 info: Listening for administrative HTTP connections on port 8080 info: Server ready
Note the port numbers you can use to access RethinkDB:
29015by default) to connect other nodes in the cluster to this node.
8080by default) to access the web interface.
For a complete list of options that can be passed to RethinkDB on the command line, read RethinkDB command line options or type
rethinkdb --help at the terminal prompt.
Adding a node to a RethinkDB cluster is as easy as starting a new RethinkDB process and pointing it to an existing node in the cluster. Everything else is handled by the system without any additional effort required from the user.
Now start the second RethinkDB instance on the same machine:
$ rethinkdb --port-offset 1 --directory rethinkdb_data2 --join localhost:29015 info: Creating directory /home/user/rethinkdb_data2 info: Listening for intracluster connections on port 29016 info: Attempting connection to 1 peer... info: Connected to server "Chaosknight" e6bfec5c-861e-4a8c-8eed-604cc124b714 info: Listening for client driver connections on port 28016 info: Listening for administrative HTTP connections on port 8081 info: Server ready
You now have a RethinkDB cluster! Try pointing your browser to
localhost:8081 to access the web interface. If
you click on the “Servers” tab at the top, you should see both servers
in the cluster.
You can also point the client drivers to
localhost:28016 to start running queries (it doesn’t matter which
node you use—the cluster will automatically route all commands to
Note the command line parameters we used to start the second node:
--port-offset—increment all ports by 1 so the two nodes don’t try to use the same ports on one machine.
--directory—use a different data directory so the two nodes don’t try to access the same files.
--join—tell our new RethinkDB instance to connect to another instance (in this case,
For a complete list of options that can be passed to RethinkDB on the command line, read RethinkDB command line options, or type
rethinkdb --help at the terminal prompt.
Having trouble accessing the web interface? Try restarting both of your RethinkDB instances with an additional
--bind all parameter.
In production, you’d likely want to specify options via configuration files rather than command line options; read the configuration file documentation for details on the format and available options. Also, you’d want your RethinkDB instances to come online at system startup. See Start RethinkDB at system startup to learn how to set up RethinkDB with
Want to connect a third node? You can join it with either of the two existing nodes in the cluster.
Starting a cluster on multiple machines or VMs is even easier than starting it on a single machine, because you don’t have to worry about port and directory conflicts.
First, start RethinkDB on the first machine:
$ rethinkdb --bind all
Then start RethinkDB on the second machine:
$ rethinkdb --join IP_OF_FIRST_MACHINE:29015 --bind all
You now have a RethinkDB cluster!
Note that by default, RethinkDB only opens connections bound to
localhost in order to prevent unauthorized clients on the network
from connecting to the server. The
--bind all option allows
connections from anywhere on the network. It works well if the network
If your network is open to the internet, you should take additional precautions. See the security page for more details.
Seeing a ‘received invalid clustering header’ message? RethinkDB uses three ports to operate—the HTTP web UI port, the client drivers port, and the intracluster traffic port. You can connect the browser to the web UI port to administer the cluster right from your browser, and connect the client drivers to the client driver port to run queries from your application. If you’re running a cluster, different RethinkDB nodes communicate with each other via the intracluster traffic port.
received invalid clustering header means there is a port
mismatch, and something is connecting to the wrong port. For example,
it’s common to get this message if you accidentally point the browser or
connect the client drivers to the intracluster traffic port.