一次花费了一两个小时的mysql问题排查
晚上把博客迁了个服务器,新建用户的时候遇到问题了。
关于mysql的问题。
前置操作
建了两个用户,一个laravel,一个blog用户以及他们的同名数据库。
建好之后,命令行下面连接mysql服务,都能正常登录,并且也都能连上各自的数据库。
问题体现
之前laravel用的root账号,这次建好laravel用户之后,改了laravel的配置文件,laravel的服务一切正常
但是blog用户能在终端登录,代码不能连接数据库。
1.开始以为是用户权限没设置好
1.1 重新设置权限给blog用户,还是不行。
1.2 根据mysql官方文档删除用户之后,重建blog用户。 竟然还是不行!
1.3 刚好在迁移博客的时候从GitHub拉了typecho的新代码,这个时候以为是typecho升级造成的问题,那么就别升级了,直接用新代码新安装。竟然还是不行!!
** 期间经历了重启php-fpm,重启mysql等各种乱七八糟的操作之后还是没解决。**
那就只能看看调试信息了。
2.调试
typecho只提示连接数据库失败,上服务器改了下install.php文件,把具体的异常打印出来。
异常中说SQLSTATE[HY000] [2002] No such file or directory,好,那就搜一下。
3.搜索
好多人都说连接数据库的时候把localhost改成127.0.0.1就可以解决。但如果就这么解决了多没意思
有人提到是socket文件不对。看了下php.ini,配置文件中的选项是空的,注释掉的。
解决
解决A
这里其实应该有解决办法了,就是去改php.ini,设置默认的socket。
但还是不想这么简单的解决问题,就继续往下查了。
解决B
(这里还走了一个弯路,以为是socket文件不对,删掉sock文件,重启mysql,发现还是不行。)
执行ps aux | grep mysql,看到
mysql 11964 02:48 0:01 /usr/sbin/mysqld --basedir=... --socket=/var/lib/mysql/mysql.sock
连接mysql,执行mysql> show variables like '%sock%',结果:
+-----------------------------------------+---------------------------+
| Variable_name | Value |
+-----------------------------------------+---------------------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | -1 |
| socket | /var/lib/mysql/mysql.sock |
+-----------------------------------------+---------------------------+
看了下php的配置php -i | grep socket
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
这里可以看到mysql的socket设置和php是的socket是不对应的。
这里用了一个比较二的方法。直接在/tmp建立了一个软连接到实际的sock,能运行了。
后期的猜测与疑问
1.为什么laravel能正常跑而typecho不行呢?
猜测:typecho用的是pdo,会需要这个socket,laravel没用这个。
在调试期间也用phpstorm自带的数据库连接器连接也失败,如果是这种猜测的话为什么phpstorm也失败,莫非phpstorm用的连接内核也是PDO?
2.为什么他们把localhost改成127.0.0.1就行?
这个问题就太专业了,不知道了。
巴拉巴拉
中途还惨杂着切换typecho各种试,typecho新老版本还切换了不同的数据驱动文件。
排查问题的时候还是别搞幺蛾子了,一点点慢慢排查。
我有时候有点受虐倾向,就是喜欢走弯路去排查问题。
从头至尾总共能花了两个多小时吧。。
现在时间2017-07-30 03:45
一次花费了一两个小时的mysql问题排查的更多相关文章
- 【转载】一个小时学会MySQL数据库
一个小时学会MySQL数据库 目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数 ...
- Springboot:Springboot+mysql5.7搭建服务,超过8小时连接mysql失败
报错信息 2017-03-12 03:00:02.539 ERROR 9311 --- [nio-9000-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] ...
- mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
在连接字符串中 添加设置节点 ConnectionLifeTime(计量单位为 秒).超过设定的连接会话 会被杀死! Connection Lifetime, ConnectionLifeTime ...
- 【mysql】连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
1. 增加 MySQL 的 wait_timeout 属性的值. 修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait ...
- 一个小时学会MySQL数据库
随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道. 一.数据库概要 数据库(Database)是存储与管理数据的软件系统,就像一个存入 ...
- 一个小时学会 MySQL 数据库
随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道. 一.数据库概要 数据库(Database)是存储与管理数据的软件系统,就像一个存入 ...
- 关于instrinsicContentSize, ContentHuggingPriority, ContentcompressionResistancePriority的理解
ios 关于intrinsic理解 最近由于项目的需要想给MBProgressHUD添加一个自定义的view, 结果花费了一两个小时也没添加上去,添加上去的view没有实际的大小,即使你给他设置了一个 ...
- 前端必备,5大mock省时提效小tips,用了提前下班一小时
一.一些为难前端的业务场景 在我的工作经历里,需要等待后端童鞋配合我的情形大概有以下几种: a.我们跟外部有项目合作,需要调用到第三方接口. 一般这种情况下,商务那边谈合同,走流程,等第三方审核, ...
- 怎样在两小时内搞定 OpenStack 部署?(转)
怎样在两小时内搞定 OpenStack 部署? OpenStack的安装是一个难题,组件众多,非常麻烦.如果手工部署OpenStack,可能需要好几天,使用RDO,就是几个命令,再加一两个小时的等待. ...
随机推荐
- C# servicestack.redis 互通 java jedis
拥抱变化,如今也走上了.net/java通吃的时代,下面就讲讲如何让.net/java都能正常访问分片的redis吧. 有几个关键点:一致性环哈希.哈希算法.序列化.反序列化 后两个都比较直接,只要选 ...
- ECSHOP购物车页面显示商品简单描述
1.这里说的商品简单描述,不是商品的详细信息,而是后台编辑商品时在“其他信息”标签栏填写的那个“商品简单描述”,即goods_brief字段 2.修改lib_order.php文件的get_cart_ ...
- js实现数据流(日志流,报警信息等)滚动展示,并分页(含实现demo)
在项目中有遇到,后台向前端推送数据,前端以数据流的形式展示,即来一条我增加一条,类似于日志,报警等信息展示,想必大部分人都有遇到过,本来出于想找一个好的展示方式的心态,因为感觉自己设计的不太好看,结果 ...
- C++数组概述
C++数组概述 基本概念 1. 数组是固定大小的一种复合类型 因为数组是固定大小,所以在编译期间就决定了基大小 数组的内存是连续(无论是一维数组还是多维数组) 2. 数组的特性 数组之间不允许拷贝和赋 ...
- IOS 固定定位底部input输入框,获取焦点时弹出的输入法键盘挡住input
移动页面经常会做到这样一个效果,看下面的图片,重点就是那个固定定位的底部,里面有个input输入框,在输入字符的时候,安卓手机看着是完全没有问题! 1.页面没有点击底部input的初始状态 2.安卓手 ...
- 百度搜索效果(jsonp法)
百度搜索效果(jsonp法): 不需要放在服务器中,本地就可以执行 <!DOCTYPE html> <html> <head> <meta charset=& ...
- 在ASP.NET Core配置环境变量和启动设置
在这一部分内容中,我们来讨论ASP.NET Core中的一个新功能:环境变量和启动设置,它将开发过程中的调试和测试变的更加简单.我们只需要简单的修改配置文件,就可以实现开发.预演.生产环境的切换. A ...
- H5在线编辑器优化总结
花了三个半月做了个编辑器.自己一个人写写CSS,搞搞html,弄下JS,大部分精力都是掏鼓js,时间很仓促,后面领导帮忙写了四个页面逻辑(音频,图片,视频). 很多能优化的,以此文章记录要已经优化和未 ...
- SharePoint 2013 安装
步骤 1:打开提升的 SharePoint 2013 命令行管理程序 选择与您的服务器操作系统对应的过程. 在 Windows Server 2008 R2 中 单击“开始”>“所有程序”> ...
- c#Message多功能用法
1. 当要显示如图3个按钮时,并要获得单击不同按钮的进行不同的相应时,可以在MessageBoxButtons后面添加一个.(应该英文的点,此处为了醒目,用中文代替)可以看到提示框下方需要几个按 ...