郑工长

提升开发效率!在 Gemini CLI 中集成 MySQL MCP 的最佳实践

发布于 2025年9月30日 | 分类: AI随心分享

在日常开发中,很多工程师习惯用 MySQL 客户端或 GUI 工具来查库,但这往往效率不高。  频繁切换工具、维护多套配置、协作不一致……这些痛点你是不是也遇到过?

MySQL MCP(托管组件平台)为此提供了更优雅的解决方案:

  1. 一体化:在 Gemini CLI 内即可完成数据库交互

  2. 环境可控:用环境变量集中管理连接信息

  3. 高效验证:快速完成数据校验、性能分析和测试修改

下面就来分享一份完整的 Gemini CLI + MySQL MCP 使用指南,帮你把数据库操作自然融入到开发工作流中。

一、安装 Gemini CLI

假设已经完成了gemini cli的安装(使用gemin cli需要关注上网的环境,你懂的!)

二、安装 Gemini CLI 的 MySQL 软件扩展程序

## 从 GitHub 代码库安装 Gemini CLI 的 MySQL 软件扩展程序
gemini extensions install https://github.com/gemini-cli-extensions/mysql

三、配置环境变量连接MySQL实例

1. 配置/方法

MySQL MCP 是通过环境变量进行配置的,而不是在 settings.json 文件中。Gemini CLI 在启动时会读取这些变量来建立数据库连接。

您需要设置以下五个环境变量:

  • MYSQL_HOST: MySQL 服务器的主机名或 IP 地址。

  • MYSQL_PORT: MySQL 服务器的端口号。

  • MYSQL_DATABASE: 要连接的数据库名称。

  • MYSQL_USER: 用于身份验证的用户名。

  • MYSQL_PASSWORD: 用于身份验证的密码。

2. 快速配置脚本

为了简化配置流程,您可以使用以下脚本。它会为您导出所有必要的环境变量。建议将其保存在项目根目录。

脚本名称: setup_mysql_env.sh

#!/bin/bash

# Gemini CLI 的 MySQL 环境变量设置脚本
#
# 使用方法:
# 在启动 gemini cli 之前,请在终端中运行此脚本:
# source setup_mysql_env.sh
#
# 重要提示: 请将 MYSQL_PASSWORD 的值替换为您的真实数据库密码。

export MYSQL_HOST="127.0.0.1" # 通过docker部署的mysql,可以用"localhost"
export MYSQL_PORT="3306" # <-- 请将这里替换为您的真实端口
export MYSQL_DATABASE="db_local" # <-- 请将这里替换为您的真实数据库名称
export MYSQL_USER="db_user" # <-- 请将这里替换为您的真实数据库用户名
export MYSQL_PASSWORD="your_db_password" # <-- 请将这里替换为您的真实密码

echo "MySQL 环境变量已设置。"
echo "  - MYSQL_HOST: $MYSQL_HOST"
echo "  - MYSQL_PORT: $MYSQL_PORT"
echo "  - MYSQL_DATABASE: $MYSQL_DATABASE"
echo "  - MYSQL_USER: $MYSQL_USER"

使用方法:

在启动 Gemini CLI 之前,在您的终端中运行以下命令加载环境变量:

# 加载环境变量
source setup_mysql_env.sh

# 运动 gemini ,在输入框中输入“ /mcp “查看mcp列表
gemini 

3. 核心使用场景

场景一:数据查询与验证

在应用中执行操作后,立即检查数据库中的数据是否正确。

示例: 验证新创建的管理员用户 test_user 是否已成功写入 admin_users 表。

SELECT * FROM admin_users WHERE username = 'test_user';

场景二:查看表结构

当不确定表的具体字段名、数据类型或约束时,可以直接查看。

示例: 快速查看 cms_contents 表的详细结构。

DESCRIBE cms_contents;

场景三:分析查询性能

当某个页面加载缓慢时,分析其背后的 SQL 查询性能,判断是否正确使用了索引。

示例: 使用 get_query_plan 工具分析一个对 admin_operation_logs 表的查询。

-- 假设这是一个可能会慢的查询
SELECT * FROM admin_operation_logs WHERE method = 'GET';

执行计划将显示查询是否为全表扫描 (access_type: ALL),提示您需要添加索引。

场景四:快速修改数据以供测试

为了测试应用在特定数据下的行为(如“草稿”状态的文章),直接修改数据库比通过UI操作更快。

示例: 将 ID 为 1 的文章状态修改为“草稿”,并立即验证。

更新数据:

UPDATE cms_contents SET status = 'draft' WHERE id = 1;

验证修改:

SELECT id, title, status FROM cms_contents WHERE id = 1;

总结: 将 MySQL MCP 集成到您的 CLI 工作流中,可以极大地提升数据库相关任务的开发和调试效率。