一、部署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表