Adminer
因为业务需要,有时候我们需要手动修正一些数据;之前的做法是登陆跳板机然后连接数据库;但是公司DBA基于安全考虑,把rd账号的写权限移除了;在这种情况下,我们在线上机器部署Adminer.php,可以方便操作表,执行Sql。
官网
Adminer支持多种数据库。
以Mysql为例,在连接数据库后,我们可以执行Sql、导入、导出、创建表、修改表,功能强大。
缺点:Adminer.php没有登陆验证、没有角色划分,每个人都能看到所有的数据,这样其实存在一定风险。
时区
因为地球是原型,所以在某一时刻,太阳只会直射到地球的一片区域,其他区域要么斜射、要么根本照射不到;在这种情况下,本地的时间是不适用于整个地球的,所以产生了时区。
在20世纪,大家使用格林尼治标准时间(GMT),它是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午线被定义为通过那里的经线。
在我们脑海里,每天时间都是相同的,24*60*60s,但是由于地球每天自转的不规律,这个时间是会波动的。因为GMT基于天文观测的不确定性,已经不再被视作标准时间,现在标准时间是UTC。
协调世界时,又称世界标准时间或世界协调时间,简称UTC;是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。
UTC使用原子时来计量时间,要比天文观测准确很多;但是由此引入问题,如何保持和CMT之间尽可能一致呢,方法是通过不规则的加入闰秒来抵消地球自转变慢的影响[1]
。闰秒在必要的时候会被插入到UTC中,以保证协调世界时UTC与世界时UT1相差不超过0.9秒[2]。
Linux IO
非常好的文章:
同步、异步、阻塞、非阻塞
Linux 五种IO模型
同步和异步仅仅是关注的消息如何通知的机制,而阻塞与非阻塞关注的是等待消息通知时的状态。
select/epoll的优势并不是对于单个连接能处理得更快,而是在于能处理更多的连接。
Socket
套接字,我们电脑上可以同时运行多个应用,大多数应用都需要和外部其他电脑做交互,那么通过网线传递的数据是如何区分一条数据是给A应用还是B应用的呢,答案是通过端口来区分,A应用占用了1001端口,B应用占用了1002端口,这样当接收到消息时,根据端口来区分到底是A还是B处理,套接字就如同插座中的一个个插孔,每个插孔就对应一个进程,通过找到对应插孔来进行信息的交互。