# 🗄️ 数据库连接信息和SQL执行指南 ## 📊 数据库配置信息 从后端配置文件 `application-dev.yml` 中提取的数据库信息: ```yaml 数据库类型: MySQL 主机地址: 129.211.213.226 端口: 3306 数据库名: cattletrade 用户名: root 密码: Aiotagro@741 字符集: UTF-8 时区: GMT+8 ``` --- ## 🚀 快速执行SQL脚本 ### 方式一:使用MySQL命令行(推荐) ```bash # Windows CMD 或 PowerShell mysql -h 129.211.213.226 -P 3306 -u root -pAiotagro@741 cattletrade < "c:/cattleTransport/权限管理菜单-精简版.sql" # 或者交互式执行 mysql -h 129.211.213.226 -P 3306 -u root -pAiotagro@741 cattletrade ``` 进入MySQL后执行: ```sql source c:/cattleTransport/权限管理菜单-精简版.sql ``` --- ### 方式二:使用Navicat 1. **新建连接**: - 连接名:牛只运输系统 - 主机:`129.211.213.226` - 端口:`3306` - 用户名:`root` - 密码:`Aiotagro@741` - 数据库:`cattletrade` 2. **测试连接** → 连接成功后,双击打开 3. **执行SQL**: - 点击"查询" → "新建查询" - 打开文件:`c:/cattleTransport/权限管理菜单-精简版.sql` - 点击"运行"按钮(或按 `F5`) --- ### 方式三:使用HeidiSQL 1. **新建会话**: - 网络类型:MySQL (TCP/IP) - 主机名/IP:`129.211.213.226` - 用户:`root` - 密码:`Aiotagro@741` - 端口:`3306` - 数据库:`cattletrade` 2. **打开**,右侧选择 `cattletrade` 数据库 3. **执行SQL**: - 点击"文件" → "加载SQL文件" - 选择:`c:/cattleTransport/权限管理菜单-精简版.sql` - 点击"执行"(或按 `F9`) --- ### 方式四:使用DBeaver 1. **新建连接**: - 数据库:MySQL - 服务器地址:`129.211.213.226` - 端口:`3306` - 数据库:`cattletrade` - 用户名:`root` - 密码:`Aiotagro@741` 2. **测试连接** → 完成 3. **执行SQL**: - 右键数据库 → "SQL编辑器" → "打开SQL脚本" - 选择:`c:/cattleTransport/权限管理菜单-精简版.sql` - 点击"执行SQL脚本"(或按 `Ctrl+Enter`) --- ## ✅ 执行后验证 ### 1. 检查菜单是否创建成功 ```sql -- 查看权限管理相关菜单 SELECT id, parent_id, name, route_url, authority, sort FROM sys_menu WHERE name LIKE '%权限%' AND is_delete = 0 ORDER BY parent_id, sort; ``` **预期结果**:应该看到3条记录: - 权限管理(父菜单) - 菜单权限管理(子菜单) - 操作权限管理(子菜单) --- ### 2. 检查超级管理员账号 ```sql -- 查看超级管理员用户 SELECT id, mobile, name, role_id, status, user_type FROM sys_user WHERE mobile = '15900000000'; ``` **预期结果**: - `role_id` 应该为 `1` - `status` 应该为 `1`(启用) --- ### 3. 检查超级管理员权限 ```sql -- 查看超级管理员拥有的权限数量 SELECT COUNT(*) as '权限总数' FROM sys_role_menu WHERE role_id = 1; -- 查看具体权限列表(前20条) SELECT rm.role_id, rm.menu_id, m.name as menu_name, m.authority, m.type FROM sys_role_menu rm LEFT JOIN sys_menu m ON rm.menu_id = m.id WHERE rm.role_id = 1 LIMIT 20; ``` **预期结果**: - 权限总数应该 > 10 - 应该包含 `permission:menu:view`、`permission:operation:view` 等权限 --- ### 4. 检查菜单按钮权限 ```sql -- 查看菜单权限管理的按钮权限 SELECT m.id, m.parent_id, m.name, m.authority, m.type FROM sys_menu m WHERE m.parent_id IN ( SELECT id FROM sys_menu WHERE name = '菜单权限管理' ) AND m.is_delete = 0; ``` **预期结果**:应该看到5个按钮权限: - 菜单查询 (permission:menu:list) - 菜单新增 (permission:menu:add) - 菜单编辑 (permission:menu:edit) - 菜单删除 (permission:menu:delete) - 角色分配 (permission:menu:assign) --- ## 🔄 SQL执行后的操作 ### 重要!必须重新登录 SQL脚本执行成功后,**必须**按以下步骤操作: 1. **退出当前登录** - 点击系统右上角用户头像 - 选择"退出登录" 2. **清除浏览器缓存** - 按 `Ctrl + Shift + Delete` - 或按 `F12` 打开开发者工具 - 在 Application → Storage → Clear site data 3. **重新登录** - 账号:`15900000000` - 密码:`123456` 4. **刷新页面** - 按 `F5` 或 `Ctrl + R` 5. **验证菜单** - 左侧菜单栏应该出现"权限管理"菜单 - 点击展开,应该有两个子菜单: - 菜单权限管理 - 操作权限管理 --- ## 🐛 故障排查 ### 问题1:SQL执行报错 **错误:Table 'sys_menu' doesn't exist** **解决**:检查数据库表是否存在 ```sql SHOW TABLES LIKE 'sys_%'; ``` --- **错误:Duplicate entry for key 'PRIMARY'** **解决**:菜单已存在,先清理旧数据 ```sql -- 删除旧的权限管理菜单 DELETE FROM sys_role_menu WHERE menu_id IN ( SELECT id FROM sys_menu WHERE name LIKE '%权限%' ); DELETE FROM sys_menu WHERE name LIKE '%权限%'; -- 然后重新执行SQL脚本 ``` --- ### 问题2:登录后菜单不显示 **可能原因1:用户角色不正确** ```sql -- 修正用户角色 UPDATE sys_user SET role_id = 1 WHERE mobile = '15900000000'; ``` **可能原因2:角色权限未分配** ```sql -- 重新分配所有权限给超级管理员 DELETE FROM sys_role_menu WHERE role_id = 1; INSERT INTO sys_role_menu (role_id, menu_id) SELECT 1, id FROM sys_menu WHERE is_delete = 0; ``` **可能原因3:未清除缓存** - 清除浏览器缓存 - 清除localStorage - 重新登录 --- ### 问题3:连接数据库失败 **检查网络**: ```bash # 测试能否ping通数据库服务器 ping 129.211.213.226 # 测试端口是否开放 telnet 129.211.213.226 3306 ``` **检查防火墙**: - 确认本地防火墙允许访问3306端口 - 确认云服务器安全组开放了3306端口 --- ## 📞 联系信息 - **数据库服务器**:`129.211.213.226:3306` - **后端API**:`http://127.0.0.1:16200/api` - **前端界面**:`http://localhost:8080` --- ## 📝 需要执行的SQL文件 1. **精简版**(推荐):`c:/cattleTransport/权限管理菜单-精简版.sql` - 只创建核心菜单和权限 - 执行速度快 - 适合快速测试 2. **完整版**:`c:/cattleTransport/权限管理功能初始化SQL.sql` - 包含所有功能 - 包含运送清单权限 - 更全面的配置 **建议先执行精简版,测试成功后再执行完整版。** --- **祝您顺利!** 🎉