java删除cookie的注意事项

最近做项目,java删除cookie没删除干净,造成退出后还有cookie,可以直接返回有权限的页面。
看到http://www.itnose.net/detail/6217972.html有这样一句话:“需要注意的是,cookie的path一定要和你想要删除的cookie的path匹配,不然只会把sessionId的值设置为空,而不会删除该cookie。”,经过仔细比对发现,我在退出的时候设置cookie,设置了domain和path,但是在登录的时候,没有设置这两个值,之前因为在本地开发,域名是localhost,可能是cookie的默认值,所以删掉了。到测试环境的时候,因为设置了正式的域名,两边对应不上,所以删除不掉。
知道了原因就很容易修正了。在登录的时候,也给cookie加上domain和path的设置就OK了。果然顺利删除,不能再直接返回有权限的页面了。

【原创】MySQL Workbench新建JSON字段

在MySQL  WorkBench中做ER图设计,并要将其转换为数据库,数据库的版本为MySQL 5.7.18。
按照需求设置了一个字段为5.7.8之后才有的新的JSON类型,按照习惯,为这个字段设置了字符集为UTF8,设置规则为UTF8_GENERAL_CI,结果在Forward Database的时候,SQL语句报错。
  1. Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' NULL
百思不得其解,最后把字符集设置去掉,就顺利通过,建表成功。特地做个记录。

 

MySQL Error Number 1005 Can’t create table ‘XX.frm’ (errno: 150) – 小雨的日志 – 网易博客

当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql开发者列表当中很多年了,然而这似乎又是一种误导。

在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序。

Read More

MySQL最诡异的access denied错误

最近受领导安排,将公司做的一个项目发布到64位的windows 2008上,网页和Mysql数据库分开。

将程序从原来的二级目录修改成发布到根目录后,登陆系统,出现经典的access denied错误

这个错误很常见,通常是连接数据库的用户名密码和数据库里保存的不一致造成的,但是再三确认,完全没有问题。也看过MySQL 5.6版的设置和以前的版本没有不同。

Read More

数据库备份冗余保存的体会

日前,一不小心把生产线上的数据库服务器数据给清空了,额,囧。那个过程就不说了,总之,老革命被老问题打倒。

然后开始做数据的冗余备份,先在数据库服务器上做好计划任务,每天凌晨做备份,除了本地放一份备份文件之外,还要放一份在本地的Window PC上。

那么两台电脑之间该如何交换数据呢?FTP神马的已经弱爆了,明文传送密码是一直被大家诟病的。这次我们选择个安全点,时尚点的。

Read More

安装PGDG版PostgreSQL

首先,去http://yum.pgrpms.org/repopackages.php按照自己的操作系统版本和要安装的PostgreSQL版本下载对应的repo RPM。例如我要使用的是8.4版的PostgreSQL,64位的CentOS6,那么下载http://yum.pgrpms.org/8.4/redhat/rhel-6-x86_64/pgdg-centos-8.4-3.noarch.rpm。这个地址根据你使用的数据库版本和操作系统版本会有变化,大家还是在http://yum.pgrpms.org/repopackages.php上点击下载的好。

Read More

PostgreSQL的copy命令使用出现array value must start with “{” or dimension information

今日,在使用PostgreSQL的copy命令时,报错array value must start with “{” or dimension information。开始因为我使用了多个WITH的参数,还以为是参数的问题,后来才发现是数据的问题。

相关的表里有某字段是输入数组的,如果是数组,就在数据中填写“{}”,这样便可以顺利通过。

获得当前Postgresql数据库下全部表名的快捷方法

pg_tables是系统视图,当作自定义试图使用

“select * from pg_tables”可以查看当前db中所有表的信息

“tablename”字段是表的名字,”schemaname”是schema的名字

用户自定义的表如果未经特殊说明都是加在名为public的schema下的

所以一般来说,找到所有自定义表的名字可以

“select tablename from pg_tables where schemaname=’public’

Read More