Files
cattleTransportation/数据库连接信息和SQL执行指南.md
2025-10-13 17:19:47 +08:00

6.4 KiB
Raw Blame History

🗄️ 数据库连接信息和SQL执行指南

📊 数据库配置信息

从后端配置文件 application-dev.yml 中提取的数据库信息:

数据库类型: MySQL
主机地址:   129.211.213.226
端口:      3306
数据库名:   cattletrade
用户名:    root
密码:      Aiotagro@741
字符集:    UTF-8
时区:      GMT+8

🚀 快速执行SQL脚本

方式一使用MySQL命令行推荐

# 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后执行

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)
    • 主机名/IP129.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. 检查菜单是否创建成功

-- 查看权限管理相关菜单
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. 检查超级管理员账号

-- 查看超级管理员用户
SELECT id, mobile, name, role_id, status, user_type
FROM sys_user 
WHERE mobile = '15900000000';

预期结果

  • role_id 应该为 1
  • status 应该为 1(启用)

3. 检查超级管理员权限

-- 查看超级管理员拥有的权限数量
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:viewpermission:operation:view 等权限

4. 检查菜单按钮权限

-- 查看菜单权限管理的按钮权限
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. 刷新页面

    • F5Ctrl + R
  5. 验证菜单

    • 左侧菜单栏应该出现"权限管理"菜单
    • 点击展开,应该有两个子菜单:
      • 菜单权限管理
      • 操作权限管理

🐛 故障排查

问题1SQL执行报错

错误Table 'sys_menu' doesn't exist

解决:检查数据库表是否存在

SHOW TABLES LIKE 'sys_%';

错误Duplicate entry for key 'PRIMARY'

解决:菜单已存在,先清理旧数据

-- 删除旧的权限管理菜单
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用户角色不正确

-- 修正用户角色
UPDATE sys_user 
SET role_id = 1 
WHERE mobile = '15900000000';

可能原因2角色权限未分配

-- 重新分配所有权限给超级管理员
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连接数据库失败

检查网络

# 测试能否ping通数据库服务器
ping 129.211.213.226

# 测试端口是否开放
telnet 129.211.213.226 3306

检查防火墙

  • 确认本地防火墙允许访问3306端口
  • 确认云服务器安全组开放了3306端口

📞 联系信息

  • 数据库服务器129.211.213.226:3306
  • 后端APIhttp://127.0.0.1:16200/api
  • 前端界面http://localhost:8080

📝 需要执行的SQL文件

  1. 精简版(推荐):c:/cattleTransport/权限管理菜单-精简版.sql

    • 只创建核心菜单和权限
    • 执行速度快
    • 适合快速测试
  2. 完整版c:/cattleTransport/权限管理功能初始化SQL.sql

    • 包含所有功能
    • 包含运送清单权限
    • 更全面的配置

建议先执行精简版,测试成功后再执行完整版。


祝您顺利! 🎉