平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Claude Code连接MySQL的保姆级教程”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际使用顺序,把思路、关键写法和容易踩坑的地方讲清楚,方便你直接对照操作。
在这个场景下,本教程专治"数据库设置恐惧症",手把手教你让 Claude Code 和 MySQL 牵手成功

想象一下:你有个超级聪明的 AI 助手(Claude Code),但它是个"宅男",只会写代码,不会出门看数据库。
这时候来了个"媒婆"——mcp-server-mysql,它负责把 Claude Code 介绍给 MySQL,让它们能互相聊天
轻松说:装了这个,Claude Code 就能直接帮你查数据库了!
打开终端,输入:
npm install -g @benborla29/mcp-server-mysql
这就像给媒婆办个上岗证,让它能开始工作
一行命令搞定,复制粘贴就行:
claude mcp add mysql-local -e MYSQL_HOST="127.0.0.1" -e MYSQL_PORT="3306" -e MYSQL_USER="root" -e MYSQL_PASS="你的密码" -e MYSQL_DB="你的数据库" -- npx @benborla29/mcp-server-mysql
注意: 把"你的密码"和"你的数据库"换成你自己的!
找到这个文件:~/.claude.json(在你的用户目录下)
打开它,加上这段:
{
"mcpServers": {
"mysql-test": {
"command": "npx",
"args": ["@benborla29/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "你的用户名",
"MYSQL_PASS": "你的密码",
"MYSQL_DB": "你的数据库"
}
}
}
}就像填相亲表格:
MYSQL_HOST = 对方住哪(数据库地址)MYSQL_USER = 你叫啥名字(用户名)MYSQL_PASS = 你的暗号(密码)MYSQL_DB = 去哪个房间(数据库名)理解这一步时,就像手机装了新 App 要重启一样,关掉 Claude Code 再打开。
输入命令看看媒婆上岗了没:
claude mcp list
看到 connected 就是上岗成功了
你: 查一下产品线二级申请单表的前10条数据 Claude: [掏出小本本,连线数据库...] ┌─────┬──────────┬─────────────────────────────┬─────────┐ │ ID │ 申请单号 │ 申请标题 │ 状态 │ ├─────┼──────────┼─────────────────────────────┼─────────┤ │ 1 │ EJ202... │ 产品线二级申请_检测产品线 │ APPROV..│ │ 2 │ EJ202... │ 产品线二级申请_IBG产品线 │ APPROV..│ ...
你: orders 表有哪些字段? Claude: orders 表有这些字段: - id (主键) - user_id (用户ID) - amount (金额) - created_at (创建时间) ...
若你有好几个数据库(比如测试库、生产库),就像有好几个相亲对象……
{
"mcpServers": {
"mysql-test": {
"command": "npx",
"args": ["@benborla29/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_DB": "test_db",
"MYSQL_USER": "root",
"MYSQL_PASS": "test密码"
}
},
"mysql-uat": {
"command": "npx",
"args": ["@benborla29/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "192.168.1.100",
"MYSQL_DB": "uat_db",
"MYSQL_USER": "admin",
"MYSQL_PASS": "uat密码"
}
}
}
}你: 用 mysql-test 查一下用户表 Claude: [切换到测试库,开始查询...] 你: 在 mysql-uat 里看看今天的订单 Claude: [切换到 UAT 库,开始查询...]
就像点名: “媒婆 A 去帮我问一下数据库甲……”
新装的媒婆默认只能"看",不能"改"。
这是为了防止手滑删库跑路
加上这些"通行证":
{
"env": {
...
"ALLOW_INSERT_OPERATION": "true", // 允许插入
"ALLOW_UPDATE_OPERATION": "true", // 允许更新
"ALLOW_DELETE_OPERATION": "true" // 允许删除(慎用!)
}
}警告: 开了 DELETE 就像给了媒婆一把剪刀,用之前想清楚!
数据库在远方服务器?用 SSH 隧道当"传送门":
{
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "db_user",
"MYSQL_PASS": "db密码",
"MYSQL_DB": "remote_db",
"SSH_HOST": "跳板机地址",
"SSH_USER": "ssh用户",
"SSH_PASS": "ssh密码"
}
}就像先坐公交(SSH)到跳板机,再换乘地铁到数据库
检查清单:
检查有没有加 ALLOW_xxx_OPERATION="true"
运行 claude mcp list 看看媒婆上岗了没
重启 Claude Code!就像手机装新 App 要重启一样。
装 mcp-server-mysql → 配连接信息 → 重启 Claude Code → 问数据库啥都行!
结合项目来看,总的来说,Claude这部分内容适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。