基于 mysql-mcp-server xiyan-mcp-server 使用自然语言查询 MySQL 数据库的步骤

安装mysql-mcp-server

  • 手动安装:使用pip命令安装mysql-mcp-server。在命令行中输入以下命令:
    pip install mysql-mcp-server
    
  • 通过Smithery安装:通过Smithery自动安装和配置mysql-mcp-server。在命令行中输入以下命令:
    npx -y @smithery/cli install mysql-mcp-server --client claude
    

配置环境变量

设置以下环境变量来配置mysql-mcp-server与MySQL数据库的连接:

MYSQL_HOST=localhost     # 数据库主机
MYSQL_PORT=3306         # 数据库端口(默认为3306)
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

连接到MySQL数据库

  • 确保MySQL数据库服务已启动,并且mysql-mcp-server有权限访问数据库。
  • 在支持MCP的应用程序(如Claude Desktop)中,通过MCP服务器发送SQL查询到MySQL数据库。

使用自然语言查询

  • 安装xiyan-mcp-server:xiyan-mcp-server是一个支持通过自然语言查询数据库的MCP服务器。在命令行中输入以下命令安装xiyan-mcp-server:
    pip install xiyan-mcp-server
    
  • 设置配置文件:创建一个配置文件,内容如下:
    model:
      name: "qwen2.5_7b"
      key: "sk-"  # key可从https://www.modelscope.cn/my/myaccesstoken页面获取
      url: "http://192.168.*.*:*/v1"
    database:
      host: "localhost"
      port: 3306
      user: "root"
      password: "********"
      database: "world"
    
  • 启动xiyan-mcp-server:在命令行中输入以下命令启动xiyan-mcp-server:
    python -m xiyan_mcp_server
    
  • 使用自然语言查询:在支持MCP的应用程序中,输入自然语言查询,如“给我列出所有学生的姓名和他们的分数”,xiyan-mcp-server会将自然语言转换为SQL语句并执行查询,返回结果。

示例

以下是一个使用mysql-mcp-server和xiyan-mcp-server查询MySQL数据库的示例:

  1. 安装mysql-mcp-server和xiyan-mcp-server。
  2. 配置环境变量:
    MYSQL_HOST=localhost
    MYSQL_PORT=3306
    MYSQL_USER=your_username
    MYSQL_PASSWORD=your_password
    MYSQL_DATABASE=your_database
    
  3. 在Claude Desktop的配置文件中添加MCP服务器配置:
    {
      "mcpServers": {
        "mysql": {
          "command": "uv",
          "args": [
            "--directory",
            "path/to/mysql_mcp_server",
            "run",
            "mysql_mcp_server"
          ],
          "env": {
            "MYSQL_HOST": "localhost",
            "MYSQL_PORT": "3306",
            "MYSQL_USER": "your_username",
            "MYSQL_PASSWORD": "your_password",
            "MYSQL_DATABASE": "your_database"
          }
        }
      }
    }
    
  4. 启动Claude Desktop并连接到MySQL数据库。
  5. 在Claude Desktop中输入自然语言查询,如“给我列出所有学生的姓名和他们的分数”,xiyan-mcp-server会将自然语言转换为SQL语句并执行查询,返回结果。
为了使用 `mcp-dbutils` 连接到 PostgreSQL 数据库,需要确保正确配置环境变量或配置文件以支持数据库连接。以下是实现此目标的详细步骤和配置要求。 ### 配置 PostgreSQL 数据库连接 1. **设置环境变量** 类似于连接 MySQL 数据库所需的环境变量,连接 PostgreSQL 数据库同样需要定义一组环境变量来指定数据库的连接参数。这些变量通常包括数据库的主机地址、端口号、用户名、密码以及目标数据库名称。例如: ```bash PG_HOST=localhost PG_PORT=5432 PG_USER=your_username PG_PASSWORD=your_password PG_DATABASE=your_database ``` 上述变量中,`PG_HOST` 和 `PG_PORT` 定义了数据库服务器的位置,`PG_USER` 和 `PG_PASSWORD` 是用于身份验证的凭据,而 `PG_DATABASE` 指定了要连接的具体数据库[^1]。 2. **确保数据库服务可用** 在尝试建立连接之前,需要确认 PostgreSQL 服务已经启动,并且运行 `mcp-dbutils` 的主机能够访问该数据库。此外,还需验证提供的数据库用户具有足够的权限来执行预期的操作。 3. **使用 MCP 服务器进行连接** 如果 `mcp-dbutils` 是通过 MCP 服务器(如 `xiyan-mcp-server`)来实现数据库连接,则还需要确保 MCP 服务器已正确配置以支持 PostgreSQL。这可能涉及到在 MCP 服务器的配置文件中指定 PostgreSQL 的连接详情,类似于下面的例子: ```yaml database: host: "localhost" port: 5432 user: "your_username" password: "your_password" database: "your_database" type: "postgresql" ``` 注意这里添加了一个 `type` 字段来明确指定数据库类型为 PostgreSQL,这对于某些需要区分不同数据库特性的 MCP 服务器来说可能是必要的[^1]。 4. **启动 MCP 服务器** 在配置完成后,可以通过命令行启动 MCP 服务器。具体的命令取决于所使用MCP 服务器实现,但通常会类似于: ```bash python -m xiyan_mcp_server ``` 5. **执行自然语言查询** 一旦 MCP 服务器成功运行并且能够连接到 PostgreSQL 数据库,就可以在支持 MCP 的应用程序中使用自然语言进行查询了。例如,可以输入类似“显示所有员工的名字及其所在部门”的查询MCP 服务器将负责将其转换为 SQL 语句并在数据库上执行。 ### 示例代码 如果 `mcp-dbutils` 提供了直接的 API 来连接数据库,而不是通过 MCP 服务器,那么可能会有如下形式的代码示例来展示如何建立连接: ```python from mcp_dbutils import PostgreSQLConnector connector = PostgreSQLConnector( host="localhost", port=5432, user="your_username", password="your_password", database="your_database" ) # 测试连接是否成功 if connector.test_connection(): print("连接成功!") else: print("连接失败,请检查配置信息。") ``` 此代码片段展示了如何使用 `mcp-dbutils` 中的 `PostgreSQLConnector` 类来创建一个 PostgreSQL 数据库连接实例,并测试连接是否成功。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值