<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>经验技巧 on adamqqq's blog</title><link>https://www.adamqqq.com/skill/</link><description>Recent content in 经验技巧 on adamqqq's blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Mon, 03 Jul 2017 17:21:00 +0800</lastBuildDate><atom:link href="https://www.adamqqq.com/skill/index.xml" rel="self" type="application/rss+xml"/><item><title>一次作死经历——误删数据库</title><link>https://www.adamqqq.com/skill/Accidentally-deleted-the-database/</link><pubDate>Mon, 03 Jul 2017 17:21:00 +0800</pubDate><guid>https://www.adamqqq.com/skill/Accidentally-deleted-the-database/</guid><description>&lt;p&gt;原来以为MySql从删库到跑路只是句笑话，没想到是真的。这学期才学数据库原理，以前人们总是说数据要经常备份，不然哪一天就会后悔，果然昨天我就碰到了这么倒霉的情况&amp;hellip;&lt;/p&gt;
&lt;p&gt;昨天晚上没事做，发现typecho后台文章cid的变化有些奇怪，按道理来说主键自增不会出现突变，可是cid有时却从50多跳跃到了90。于是我便在百度上找到了&lt;a class="link" href="http://www.jb51.net/article/42883.htm" target="_blank" rel="noopener"
 &gt;这个坑爹帖子&lt;/a&gt;。本来想着是优化一下数据库表的结构，直到运行了这个sql语句后&lt;code&gt;TRUNCATE TABLE typecho_contents&lt;/code&gt;，突然发现，咦？为什么查询不到结果了？？？原来数据库的一个表被我删掉了。当时就急了，这个作者什么都没提醒啊，我之前也没用过这个语句，根本就不知道这有什么用途，还以为只是优化一下表呢。百度一查，这个TRUNCATE语句就意味着DROP+CREATE&amp;hellip;不仅删掉表，还重建了表。如果只是删掉了表，那么还可以通过闪回操作恢复，但这样之后就没办法恢复了。当时瞬间整个人就懵逼了，我从来没有手动备份过，不知道有没有自动备份。检查了一下，不仅没有自动备份，连事务日志都没有。正常的数据库级恢复方法当然就没有用了，只好跑去腾讯云那里发了个工单，看他们有没有自动备份硬盘。我真佩服腾讯的工程师，凌晨居然都还有值班的，回复我说：需要自己手动快照才能备份。
&lt;img alt="腾讯云工单截图" class="gallery-image" data-flex-basis="585px" data-flex-grow="243" height="399" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://image-10026452.cossh.myqcloud.com/201707031737.png" srcset="https://www.adamqqq.com/201707031737_8529844381917195462_hu_a9bb5debc770af8c.png 800w, https://image-10026452.cossh.myqcloud.com/201707031737.png 973w" width="973"&gt;
好吧，这下就彻底GG了，之前的博客文章都是直接在typecho里写的，电脑上也没有备份，这么久的心血难道就毁于一旦了吗？还好想起了搜索引擎快照这个东西，百度一下果然没有，谷歌上一搜就找到了，赶紧连夜从谷歌快照上恢复了这么多博客文章。所以说数据库一定要备份啊！不仅需要数据库级的备份，也需要异机、异地备份，以防万一，不然就只能从删库到跑路了&amp;hellip;&lt;/p&gt;
&lt;p&gt;PS：真正的修改方法是：&lt;code&gt;alter table typecho_contents AUTO_INCREMENT=100;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>本站启用 https 的经验</title><link>https://www.adamqqq.com/skill/experience-of-switch-to-https/</link><pubDate>Tue, 06 Jun 2017 11:12:00 +0800</pubDate><guid>https://www.adamqqq.com/skill/experience-of-switch-to-https/</guid><description>&lt;p&gt;经过一段时间的测试，本站已经成功启用了 https。现在，本站与用户之间的通信已经加密，能有效保护用户与网站间的通信安全。虽然很早前就知道了 https 是怎么一回事，但之前怕麻烦就没有部署，但是根据这次的经验，启用 https 也不是很难。下面我就介绍一下本站启用 https 协议的经验。&lt;/p&gt;
&lt;h2 id="申请-ssl-证书"&gt;申请 SSL 证书
&lt;/h2&gt;&lt;p&gt;要启用 https 协议，首先需要申请一个由数字证书授权机构颁发的 SSL 证书。由于本站部署于腾讯云上，便在&lt;a class="link" href="https://www.qcloud.com/product/ssl" target="_blank" rel="noopener"
 &gt;这里&lt;/a&gt;找到了免费的 SSL 证书申请。申请过程也很简单，填写信息后很快就收到了由 Trust Asia 颁发的免费域名 SSL 证书。&lt;/p&gt;
&lt;h2 id="部署-ssl-证书"&gt;部署 SSL 证书
&lt;/h2&gt;&lt;p&gt;在申请证书通过后，下载证书到服务器上，之后按照&lt;a class="link" href="https://www.qcloud.com/document/product/400/4143" target="_blank" rel="noopener"
 &gt;腾讯云的教程&lt;/a&gt;便轻松安装。
由于用户一般是不会主动在链接上加上 https 的，所以需要将 http 请求重定向至 https。由于本站使用的服务器是 IIS，便按照&lt;a class="link" href="http://blog.csdn.net/xuhuojun/article/details/6137154" target="_blank" rel="noopener"
 &gt;教程&lt;/a&gt;用 URL 重写模块完成了请求重定向。&lt;/p&gt;
&lt;h2 id="细节处理"&gt;细节处理
&lt;/h2&gt;&lt;p&gt;在启用 https 后，网站内部的链接还是使用的 http 协议，所以需要调整。
首先现在 typecho 后台设置的站点地址中，将 http 开头的网址改为 https。之后在 typecho 根目录下的配置文件 config.inc.php 中，添加一行define(&amp;rsquo;&lt;strong&gt;TYPECHO_SECURE&lt;/strong&gt;&amp;rsquo;,true);。保存后重启 iis 服务器便可完成启用。
再重新进入网站主界面时，浏览器提示访问的页面有一部分是不安全的，这是因为网页上混合了 https 和 http 的元素。我开始也不清楚是哪个地方引用了 http 元素，经过检查发现 cnzz 的统计代码是引用了 http 来源的 JS 脚本，将链接改为 https 后便解决了。&lt;/p&gt;
&lt;p&gt;总之，启用 https 不仅能提高站点的安全性，更能让站点看起来高大上一些。&lt;/p&gt;</description></item></channel></rss>