如何从C#应用程序连接至Docker化的Memgraph数据库?
连接Docker化Memgraph到C#应用程序
1. 确认Docker容器的端口映射
首先确保你的Memgraph容器已将Bolt协议默认端口(7687)映射到主机端口。新启动容器可执行:
docker run -p 7687:7687 memgraph/memgraph
若容器已运行,用docker ps命令查看端口映射状态,确认主机7687端口指向容器内的7687端口。
2. 安装兼容的.NET驱动
Memgraph兼容Neo4j的Bolt协议,直接使用Neo4j的.NET驱动即可。通过NuGet安装:
- 包管理器控制台执行:
Install-Package Neo4j.Driver - 或在Visual Studio的NuGet包管理器中搜索
Neo4j.Driver完成安装
3. 编写连接与查询代码
以下是基础的连接和数据查询示例:
using Neo4j.Driver; using System; class MemgraphConnector { static void Main() { // 连接地址:容器不在本地时,替换为对应机器IP var uri = "bolt://localhost:7687"; // 初始化驱动:默认无认证,若容器设了密码,改用AuthTokens.Basic("用户名", "密码") using var driver = GraphDatabase.Driver(uri, AuthTokens.None); // 创建会话并执行查询 using var session = driver.Session(); var result = session.Run("MATCH (n) RETURN n LIMIT 5"); // 处理查询结果 foreach (var record in result) { var node = record["n"].As<INode>(); Console.WriteLine($"节点ID: {node.Id}, 属性: {string.Join(", ", node.Properties)}"); } } }
关键注意事项
- 若Memgraph部署在远程服务器,将
localhost替换为服务器的公网/内网IP。 - 若启动容器时通过
MEMGRAPH_AUTH环境变量设置了认证(例如docker run -p 7687:7687 -e MEMGRAPH_AUTH="user:pass" memgraph/memgraph),需修改驱动初始化代码为AuthTokens.Basic("user", "pass")。 - 确保主机防火墙允许7687端口的入站连接,避免连接被拦截。
内容的提问来源于stack exchange,提问作者KWriter
相关产品推荐
相关产品推荐

