月度归档:2013 年十一月

The user specified as a definer (”@’%') does not exist完美解决方法

在给一个客户做电商项目实施的时候,mysql数据库报错The user specified as a definer (”@’%') does not exist。尝试过两种方式,第一种重启之后好用,但是一会就又不好用了。第二种算是一种完美的解决方法。此种报错主要是针对访问视图文件引起的。

第一种:

给root赋值所有权限:注意在命令符下面操作。

grant all privileges on *.* to root@”%” identified by “.”;
flush privileges;
但是这种重启之后一会就又不行了。
第二种:
复制视图创建语句,直接将create改成alter,definer改成相关的,比如root@localhost  例如:
用alter view 修改definer的值,alter ALGORITHM=UNDEFINED DEFINER=`public`@`192.168.0.%` SQL SECURITY DEFINER VIEW `view_product` AS 视图选择语句。

 

通过执行use information_schema;和 select TABLE_SCHEMA,TABLE_NAME,DEFINER from views; 两条语句,可以查询到definer是否更改成功了。

原因分析
因为创建视图使用的是xff@%用户(目前已经不存在),然后登录用户使用的是xff@localhost用户,导致mysql认为现在的用户无权限访问该视图,解决方法就是在当前用户下重建该视图。

题外话:还有一种方法是如果你是运维人员,此问题直接交由程序去处理,让其检查创建触发器、视图、存储过程等sql。如果包含root@%,替换之。重新创建。没有尝试过,后面可以试试。

 

为什么handone没有附件上传功能?我有附件要上传怎么办?

最近有客户咨询,为什么handone一直没有附件上传功能?我有附件要上传怎么办?

handone在研发的时候,也考虑过附件功能以及浏览器截图上传功能,但迟迟没有开发。最大的担心是影响用户体验。因为附件如果稍微大一点,用浏览器的方式上传是非常低效的,速度会慢,如果网络突然断掉,就白传了,浏览器做断点虚传功能比较鸡肋。并且通过浏览器来管理附件,如果数量众多,也不是一个好的方式。

那么如果有附件该怎么办呢?handone内部团队在使用的时候也遇到过这种问题。我们刚开始是通过内部共享的方式来解决,比如在布置一个任务的时候,相关的附件会把路径复制进去,需要的人直接复制路径就能够快速访问到。如图:

附件共享

附件共享

这样安全性方面也会更好一些,但是如果你不在公司内部网络,访问起来就会比较困难。为了解决这个问题,也为了解决团队同时编辑附件的问题,我们在经过多次对比之后,采用了酷盘的方式,酷盘的具体使用在此不在说明,感兴趣的可以百度一下。也许会有比酷盘更好的文档共享方式,如果您知道也希望通知我们分享。

酷盘和handone的结合如图所示:

酷盘附件

酷盘附件

最后说一句:浏览器的截图方式handone在不久的将来会实现,敬请期待。

客户问:如果我周一分配的任务,需要在周三完成怎么办?

handone的任务时间面板只有四个,今天,明天,本周和持续推进,我们本来考虑这些面板可以灵活的进行自定义以及改名字,但是考虑之后,我们认为这种灵活性反而不好,会给团队降低办事效率,带来管理上的模糊性。

所以如果周一分配的任务,需要在周三完成,我们建议排入本周截止。然后将任务拆分的更细,规划出今天和明天需要完成的任务,到明天完成之后继续进行拆分规划。

如果一个任务,截止时间是周三或者周四,肯定是能够拆分的更细,落实到今天和明天面板里面。

handone不喜欢做太久远的计划,但是没有计划也不行,因此对于计划,handone建议放入持续推进中,然后进行计划的拆分,把今天和明天的事情规划好,按时完成,如此反复,大目标就可以实现。