Migrate MySQL database to Memgraph
Prerequisites
- A running MySQL instance with the database you wish to migrate.
- A running Memgraph instance where you want to migrate the data.
- The mgmigrate tool installed. Installation instructions can be found here.
How to migrate data from MySQL to Memgraph?
Dataset
To show you how to migrate data from MySQL to Memgraph we will be working with a
MySQL database named users_db
that contains two tables, users
and
user_relationships
:
- Table 'users'
- Table 'user_relationships'
The users
table contains four users with their ids and names:
mysql> SELECT * FROM users;
+----+------+
| id | name |
+----+------+
| 0 | Anna |
| 1 | Josh |
| 2 | Lisa |
| 3 | Troy |
+----+------+
The user_relationships
table contains the relationships between users:
mysql> SELECT * FROM user_relationships;
+----------+----------+
| user_one | user_two |
+----------+----------+
| 0 | 1 |
| 2 | 3 |
+----------+----------+
Migrating
1. You can migrate this database into Memgraph by running:
build/src/mgmigrate --source-kind=mysql /
--source-host 127.0.0.1 /
--source-port 33060 /
--source-username root /
--source-password mysql /
--source-database=users_db /
--destination-host 127.0.0.1 /
--destination-port 7687 /
--destination-use-ssl=false
2. Run the following query in Memgraph Lab or mgconsole to see the results:
MATCH (n)-[r]-(m) RETURN n,r,m;
The query results should be:
- mgconsole
- Memgraph Lab
memgraph> MATCH (n)-[r]-(m) RETURN n,r,m;
+--------------------------------+--------------------------------+--------------------------------+
| n | r | m |
+--------------------------------+--------------------------------+--------------------------------+
| (:users {id: 1, name: "Josh"}) | [:user_relationships] | (:users {id: 0, name: "Anna"}) |
| (:users {id: 0, name: "Anna"}) | [:user_relationships] | (:users {id: 1, name: "Josh"}) |
| (:users {id: 3, name: "Troy"}) | [:user_relationships] | (:users {id: 2, name: "Lisa"}) |
| (:users {id: 2, name: "Lisa"}) | [:user_relationships] | (:users {id: 3, name: "Troy"}) |
+--------------------------------+--------------------------------+--------------------------------+