一、部署MySQL¶
以下基于Rocky9
先安装MySQL8.0
yum install -y mysql-server
启动服务
systemctl start mysqld
systemctl enable mysqld
设置root密码
mysqladmin -uroot password '<your-password>'
测试root密码是否可以登录
mysql -uroot -p'<your-mysql-password>'
8.2 部署mysql mcp¶
项目地址:https://github.com/benborla/mcp-server-mysql.git
同学推荐: https://gitee.com/im-qiaoge/mysql-mcp-server-sse
建议将mysql mcp服务部署在和mysql服务同一台机器上,方便管理
安装node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 22
如果下载不到,直接手动下载和安装
wget https://nodejs.org/dist/v22.21.0/node-v22.21.0-linux-x64.tar.xz
mv node-v22.21.0-linux-x64.tar.xz /opt
cd /opt
tar Jxf node-v22.21.0-linux-x64.tar.xz
ln -s /opt/node-v22.21.0-linux-x64/bin/node /usr/bin/
ln -s /opt/node-v22.21.0-linux-x64/bin/npm /usr/bin/
ln -s /opt/node-v22.21.0-linux-x64/bin/npx /usr/bin/
测试npx命令是否可用
npx -v
创建服务目录
mkdir /opt/mysql-mcp
下载源码
yum install -y git
cd /opt/mysql-mcp
git clone https://github.com/benborla/mcp-server-mysql.git
创建配置文件
cat >/opt/mysql-mcp/mcp-server-mysql/.env << EOF
# Basic MySQL connection settings
MYSQL_HOST=127.0.0.1
# MYSQL_SOCKET_PATH=/var/lib/mysql/mysql.sock
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=<your-mysql-password>
MYSQL_DB=
# Leave MYSQL_DB empty for multi-DB mode
# Set MYSQL_DB to a specific database name for single-DB mode
# Global write operation permissions (default to false for safety)
ALLOW_INSERT_OPERATION=true
ALLOW_UPDATE_OPERATION=true
ALLOW_DELETE_OPERATION=true
ALLOW_DDL_OPERATION=true
# Schema-specific permissions
# Format: "schema1:true,schema2:false"
SCHEMA_INSERT_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_UPDATE_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_DELETE_PERMISSIONS=test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=test_db:true,staging_db:false
# Multi-DB mode settings
# Set to true ONLY if you want to allow write operations in multi-DB mode without
# schema-specific permissions (not recommended)
MULTI_DB_WRITE_MODE=true
# SSL configuration
MYSQL_SSL=false
MYSQL_SSL_REJECT_UNAUTHORIZED=true
# Performance settings
MYSQL_POOL_SIZE=10
MYSQL_QUERY_TIMEOUT=30000
MYSQL_CACHE_TTL=60000
# Security settings
MYSQL_RATE_LIMIT=100
MYSQL_MAX_QUERY_COMPLEXITY=1000
# Monitoring settings
ENABLE_LOGGING=true
MYSQL_LOG_LEVEL=info
MYSQL_METRICS_ENABLED=false
# Remote MCP configuration
IS_REMOTE_MCP=true
PORT=3000
REMOTE_SECRET_KEY=AmingLinux999
EOF
启动mcp服务
cd /opt/mysql-mcp/mcp-server-mysql
npm install
npm run build
nohup node dist/index.js > /tmp/mysql-mcp.log 2>/tmp/mysql-mcp.log &
8.3 Dify里配置MCP¶
菜单栏点击“工具”,再点击“MCP”,然后添加MCP服务
1、服务端点: http://你部署mcp的机器ip:3000/mcp
2、名称、服务器标识:mysql-mcp
3、认证:Authorization Bearer <your-api-token>
8.4 在Dify中创建Agents应用¶
1、设置提示词
你是一个mysql管理专家,你需要根据mysql_query工具需要的参数从用户提出的需求中提取关键信息。
如果用户需要删除操作时,请不要直接执行删除操作,而是需要将删除操作先列出来,
跟用户讲清楚删除后的隐患,让用户是否同意删除,只有用户确认删除之后,才能执行删除操作。
2、添加工具
3、测试:
(1)创建库、表
创建一个aming01库,并且创建一个test_table表,
里面需要有两个字段:id(这是个自增id,整数类型),name(这个是个字符串类型),
并且拟订5行测试数据插入到表中。
(2)查询表
查询aming01库里有几个表,并且查询表中的数据
(3)删除操作
删除aming01库里的test_table表