Mysql 的 localhost 与 127.0.0.1,记一次博客迁移

Mysql
薅了腾讯云的羊毛,用360买了5年的1H1G1M。考虑到把阿里云上的服务全部都迁移过来,几个项目都迁移完了,最后迁移的是这个Te博客,本以为会很容易(实际真的挺容易,只是又一次的学艺不精),但是潜移过来数据库报错了,数据库的账号密码在 mysqlmyadmin 与 命令行模式下的 mysql 都测试过了,是没有问题的。

一步一步的注释,退出,最终来到了 DB 模块(本来应该是直接来到这里的,走了弯路,测试账号密码都是对的,就没往数据库连接的方面想),测试发现数据库连接不上,突发奇想把 dsn 写死,这样就可以连接上了,把写死的 dsn 与自动生成的进行对比,发现不一样的是 host 用的不一样,自动生成的是 127.0.0.1 ,这是在当初安装的时候直接输入的。一直以为默认情况下 localhost 与 127.0.0.1 是一致的。但是在这里其实牵扯到 Mysql User 表中的 Host 字段。Mysql 的登陆鉴权也是根据数据库中的对应值完成的,迁移创建数据库的时候只创建了 Host 为 localhost 没有创建 127.0.0.1 ,在使用 127.0.0.1 连接时 Mysql 找不到 hostname 为 127.0.0.1 的对应行,所以登陆不成功。看到表中有两条 root 的记录,localhost 与 127.0.0.1 同时存在,所以又生成了一条 localhost 的数据。
Nginx/Tengine
这次配置环境没有安装 Apache,所以伪静态失去了作用。一开始不停的登陆登陆不上,也没考虑到伪静态的问题,以为是 CDN 的问题,在 upyun 里调了半天无果。偶然打开某一文章, 404。
配置如下:

  if (-f $request_filename/index.html) {
    rewrite (.*) $1/index.html break;
  }
   if (-f $request_filename/index.php) {
    rewrite (.*) $1/index.php;
  }
  if (!-f $request_filename) {
    rewrite (.*) /index.php;
  }