Text
MySQL 存储过程实现分割(类似split)字段并分别插入表中
MySql本身针对字符串的操作中,并不提供split函数,所以如果想要在mysql中分割一个字符串,就比较麻烦了。
就像这次碰到的需求是:在用户的账号表中,有一个字段“QQ”,用于存储用户的QQ号,当用户有多个QQ号的时候,是用“;”分隔的,类似于“1234567;7654321;234617”这种样子。后面为了更好的管理用户的联系信息,专门独立出一张表,用于存储用户的各种联系信息,现在要做的就是将用户的多个QQ号分别插入到联系信息表中,实现一个QQ号一条记录。
想来想去,想要实现只能靠存储过程了,总不能把这些信息导出来,然后在文本文档里做成多个sql语句吧?这种方法也算一条可以走的路。但我们有更好的办法,那就是存储过程。
使用存储过程实现的主要思路如下:
1、先将所有用”;”分隔的QQ号取出来,并放入游标中:
DECLARE cursor_qq CURSOR FOR SELECT…
View On WordPress
0 notes
Text
mysql load data infile:Error 13 Can't get stat of 错误
mysql load data infile:Error 13 Can’t get stat of 错误
今天在用load data infile导入一个CSV文件到mysql中时,出现如下错误:Can’t get stat of ‘/home/user/test.csv’
上网查了一下文档,大致最简单的解决办法就是将 load data infile 命令换成 load data local infile
有没有local的区别主要在以下几点:
添加local:待导入的文件由mysql客户端读取,并发送到mysql服务端的“临时”目录生成一份副本 。这个“临时”目录并不是mysql配置的tmpdir或者slave_load_tmpdir,而是系统的临时目录,而且不能由mysql配置。(通常linux的临时目录为/tmp,而widows的临时目录为C:\WINDOWS\TEMP)。当临时目录空间不足时,会触发load data local错误。
文件路径为绝对路径时,将按照绝对路径去读取。
View On WordPress
0 notes
Text
tomcat 接收 PUT 请求的参数
tomcat 接收 PUT 请求的参数
最近在使用ajax提交一个put请求到后台时,发现后台能正常接收到put请求,但是请求参数却收不到。代码如下:
var testData = $("#test-fm").serialize(); $.ajax({ url:"test.do", data:testData, type:"PUT", success:testAjaxHandler });
一开始以为是代码问题,各种试,最后发现将testData附加到URL后面时,后台能正常收到,而用上面的方式,死活收不到。于是反应过来,应该是用PUT方式提交时,服务器没有将RequestBody中的参数给转换过来。Google一翻后发现:tomcat默认情况下,只会转换POST请求中的参数。
于是在tomcat服务器的conf目录下server.xml中的Connector标签中,添加一个…
View On WordPress
0 notes
Text
MySql left join 条件中on与 Where的区别
MySql left join 条件中on与 Where的区别
table1 LEFT JOIN table2 ON 语句的查询结果如下图所示:
(图片来源:http://www.w3schools.com/sql/img_leftjoin.gif)
语言描述就是 A LEFT JOIN B ON 语句返回的数据是由A中所有行以及与B中匹配的行。如果与B中数据没有匹配,则返回一行所有列为NULL的行。好像说的也不太明白,直接上例子吧。
mysql> create table company(id int primary key, name varchar(128)); Query OK, 0 rows affected (0.13 sec) mysql> create table employee(id int primary key, name varchar(128), company_id int); Query OK, 0 rows…
View On WordPress
0 notes
Text
Canal:Could not find first log file name in binary log index file
canal是阿里巴巴开源的mysql数据库binlog增量订阅&消费组件。其原理是:
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
今天在一台服务器上部署项目的时候,发现数据库的变更提醒功能不好用,虽然canal启动时没有任何异常,但想了想,应该还是canal的问题。于是找到canal的日志文件,就看到一直在重复输出错误日志,内容如下:
2015-12-28 12:32:54.742 [destination = test , address = /192.168.1.247:3306 , EventParser] ERROR…
View On WordPress
0 notes
Text
博客使用Let's Encrypt的开源证书加密传输
博客使用Let’s Encrypt的开源证书加密传输
很早就想过要给自己的博客采用HTTPS传输,也一直因为懒癌的存在,拖了很久。直到前些天,把博客的域名给搞定之后,终于又想起来要把HTTPS给搞起来了。
要使自己的网站采用HTTPS传输,那就少不了证书。而生成的获取,有以下几种方式:
一、最直接的是使用自签名的证书,但是这样就会被浏览器提示网站证书有问题,阻止你继续访问。
二、再进阶一点,就是使用StartSSL的免费证书了。在使用现在的证书之前,我有试过一下StartSSL的证书,在使用的过程中发现,虽然在生成证书的时候,选择了使用SHA-2的签名算法,但实际上生成的证书,在使用过程中,浏览器还是会提示是使用的SHA-1的签名算法,即浏览器地址栏不会显示绿色小锁的标识。于是放弃了。
三、去购买收费的证书。现在最便宜的证书是由Comodo颁发的DV(Domain…
View On WordPress
0 notes
Text
博客域名变更以及godaddy优惠域名购买方法
之前博客的域名一直是tk的,是一个免费的域名。可以在这里申请。但这毕竟是一个小众的域名,再加上一直没有想到一个合适的名称,就一直没有去申请com域名。时间一长,也就没有放在心上,只是偶尔会时不时的心里痒痒,总想找一个适合自己的域名。
直到前段时间,好友“老季”总是偶尔和我讨论一些域名或者主机相关的事情,搞得我又心痒痒的想弄自己的域名了。于是趁着上班空隙搜了搜相关的域名商。发现,现在比较主流的域名商有godaddy、 name、 namecheap等,无意中竟然发现,google竟然也提供域名注册服务domains.google.com。印象中倒是有看到过新闻说google开始提供域名注册服务,但都是好久之前的事了,后来竟也忘了。之后几天,一直在考虑想一个什么样的域名,最终在“老季”的帮助下,敲定了现在的域名:roadofgrowth.com,成长之路,这也是自己弄这个博客的原因,记录自己…
View On WordPress
0 notes
Text
HttpClient快速上手
HttpClient是Apache下面的一个封装了HTTP协议的开源项目。虽然java.net包提供了基本的通过HTTP协议访问资源的功能,但是它不够灵活,功能性也不够。而HttpClient则恰好弥补了这一弊端。可以访问HttpClient���方首页了解更多。
要在项目中使用HttpClient有多种方式,例如直接从官方主页下载jar包,在下载页可以看到, 目前(2015-11-02)HttpClient最新版本是4.5.1。所以直接下载HttpClient的二进制包即可。同时最好也把HttpCore也下载下来,因为有可能会使用到。
如果项目是使用maven构建的,那么将下面的依赖加入到项目的pom文件中即可:
org.apache.httpcomponents httpclient 4.5.1 org.apache.httpcomponents httpcore 4.4.4
View On WordPress
0 notes
Text
为什么不能一起把蛋糕做大?
举个栗子:最近公司在讨论统一一个将来的长久使用的Web技术架构,于是有两个团队做了两个模型分别称为A、B吧。就我们组看了之后,都觉得无论从长远以及技术成熟度来说,A明显好过A,于是大家都倾向于A。然后今天中午又有一个团队说也做了一个模型,暂且称为C吧,(当然,我没有去看,具体架构不知道),据看过的同事说,该架构适用于其本团队那一业务类型的小型的项目,所以事实上是不适合作为公司长久统一使用的架构的。然后重点来了,下午我们组在讨论马上要做的一个项目采用哪种架构,然后问到其中一个同事对前面三种架构的看法时,该同事说,哎呀,其实不用这么麻烦,用XXX就可以快速搞定。然后大家又开始讨论了,无论我说从长远考虑还是统一风格都应该选A,而不是此同事所说的可以快速搞定的XXX,尽管XXX是A的简化版,但正因为A是从全局来考虑的,必然不能太简单,必然要做一些封装,封装也是为了更好的使用和维护,但是大家听到可…
View On WordPress
0 notes
Text
新购VPS初始化安全配置
随着越来越多的人购买VPS搭建各种服务,VPS的安全性也变得越来越不容忽视。如何才能尽可能地降低自己的VPS被入侵被攻击的概率?本文将主要介绍以下几个方面的安全配置,如果读者已经熟知这些,请无视。如无特殊说明,本文默认的操作环境是ubuntu 14.04,并且假设你已经会使用putty、xshell等SSH远程登录工具。如果不会,请参考本站这篇文章,里面有putty相关操作。
禁止root用户远程登录
禁用密码远程登录(采用SSH-KEY的验证方式)
防火墙配置
一、新建用户
root是Linux系统环境中权力最广的用户,所以一般是不推荐直接使用root账户来作为日常使用的,以防止造成一些误操作。所以作为日常使用,我们就得新建一个日常使用的普通账户,但是我们会将它添加到sudo用户组,因为有些命令是需要root权限才能执行的,比如安装软件(apt-get install)等。
现在假设…
View On WordPress
0 notes
Text
Flex 4 (Adobe Air)如何在应用程序目录(ApplicationDirectory)下写入文件
要在Flex中读写文件,离不开两个类:flash.filesystem.File和flash.filesystem.FileStream。File代表着一个文件或者文件夹的路径,而FileStream指文件流。
File类中定义了几个常量,用以指向一些常用的目录:
The File class includes static properties that let you reference commonly used directory locations. These static properties include:
File.applicationStorageDirectory—a storage directory unique to each installed AIR application
File.applicationDirectory—the read-only…
View On WordPress
0 notes
Link
拿开车做个类比,一个人就算买来最贵的车,拥有最高级、最完善的安全设备,可如若他没有“安全意识”的话,那些外在的东西其实统统没用。
曾听一朋友转述一场车祸:那年他坐着新买的宝马X5在高速上被人追尾……他的司机很有经验,下了车,没有任何犹豫,拖着我那朋友迅速爬过栏杆离开公路……一分钟都不到的时间里,后面的车冲过来,撞上,再后面还有车撞上来,他们俩的车都直接报废了……对我那位朋友来说,这体验就是“死里逃生”——他根本就没有那个意识,当时还心疼车,下了车还想骂人,若不是他的司机二话不说就把他拖出高速公路,那岂不是车毁了人也要亡?幸亏那位司机有足够的“安全意识”!
...
29 notes
·
View notes