分类: Mysql数据库
添加数据到数据库时提示Duplicate entry ” for key ‘xxx’
开发.net core程序时通过sqlsugar添加数据到数据库时添加1条记录后,添加第二条提示 Duplicate entry ” for key ‘xxx’,而这个xxx并非对应数据表的字段,这是因为另外定义了名为xxx的索引,而且将索引设定为UNIQUE,导致添加第一条后,添加第二条索引字段出现重复值而被数据库提示错误。 解决方法旧是把这个索引修改为index就ok,当然了,如果这个索引确实需要唯一,那就要排查你添加数据的逻辑了。
详细内容使用旧data文件夹恢复mysql数据库
有批旧mysql数据需要恢复,程序员只保留了原本的data目录,为了导出旧数据需要恢复data目录中的数据库。 操作流程: 1、安装与旧mysql同一个版本的mysql,注意:如果可以最好版本完全一致,其次是在同一个子版本,例如5.7 2、停掉新安装的mysql 3、备份新mysql的data目录中的文件,然后清空data下面所有内容 4、将旧mysql的data目录中的内容复制到新mysql的data目录下,并设定好相应的权限(比如宝塔mysql目录用户是mysql、权限755、640都有,自己看下data目录本身的权限) 5、启动mysql(如果第4步的权限没设定好,一般是无法启动的,看下日志,确认下错误原因) 6、通过phpmyadmin或者其他mysql连接工具使用旧的mysql的账户密码登录 如果忘记旧mysql的root密码,可以按照如下步骤: 1、在mysql配置文件中的[mysqld]节点加入 skip-grant-tables 2、重启mysql服务 3、使用控制台命令mysql -u root登录mysql 4、刷新权限flush privileges; 5、重设密码:set password for ‘root’@’localhost’=’123456′; 注意橘色部分,如果你的root是允许所有机器登录的,直接把橘色去掉,否则会提示找不到用户的错误
详细内容.Net6后台用户权限控制模块开发方案
用户权限控制系统是B/S架构管理系统的关键模块,网上有多种方案,本文将分享一个相对比较简单的方案。 后台用户权限包含: 1、菜单权限: 1.1 菜单加载:后台加载菜单时,只加载分配给用户的菜单 1.2 页面加载:只能进入授权菜单对应的url页面 2、接口权限: 2.1 API调用权限:view页面只能调用授权api 基于此,我们将通过Microsoft.AspNetCore.Mvc.Filters的IAuthorizationFilter接口,配合Mysql数据库实现该方案。 数据库设计: 类型 备注 id 自增 username varchar(32) 用户名 password varchar(64) 密码 role_id int 用户表 类型 备注 id 自增 name varchar(32) 菜单名称 path varchar(100) view地址 菜单表 类型 备注 id 自增 name varchar(32) 组名称 menu_list text 菜单列表 api_list text 接口列表 用户组 类型 备注 id 自增 name varchar(32) 接口名称 path varchar(100) 接口地址 接口表 关键代码: 代码中涉及到数据库的读写就不详细写了,使用的是sqlsugar,各位根据自己情况修改下即可! 至此,基础的权限控制关键已完成,只需要编写相应的后台页面即可实现通过后台设定用户组的菜单权限、接口权限等。
详细内容.Net Core读取Mysql数据库提示Unable to convert MySQL date/time value to System.DateTime
.Net Core连接Mysql时提示“Unable to convert MySQL date/time value to System.DateTime”错误,解决办法有3种: 1、将Mysql的date/datetime字段默认值设置为null 2、在连接字符串增加:Convert Zero Datetime=True ; Allow Zero Datetime=True 3、将date/datetime字段设置为varchar
详细内容