家中的seo突然开始吼叫,叫了很久,让负责服务端的小朋友去收拾,但效果不尽人意,
怎么办?有一句话叫:有困难要上,没有困难创造困难也要上。套用到现在,就是自己前端的问题要解决,后端的问题要抢着解决,要不然大牛这个称号不是遥遥无期么。:)
描述问题:
大意如此,使用wdcp模板,新建站时候发现提示数据库错误,使用phpMyAdmin查看发现也报2002错误:
思考也许是数据库错误,使用putty链接linux,检查数据库发现系统的mysql也包错了:
提示本地MYSQL的\tmp\mysql.sock
文件无法启动,于是搜索文件发现路径不对,实际搜索在\var\lib\tmp\mysql.sock
下,于是使用ln -s \var\lib\tmp\mysql.sock \tmp\mysql.sock
建立软连接,但结果还是失败,甚至错误都没变,无奈,开始求助谷歌大大。
找到问题:
尝试了很多都没有用,但黄天不负有心人,终究还是让我找到了他:(记一次 ERROR 2002…),输入 df :
症状一样,同样是100%占用,恰巧昨天我自己的服务器安装的宝塔面版也提示我内存不足1g时候会导致mysql无法运行,由此判断问题就是:系统盘占用100%,导致mysql无法运行的问题;
仔细阅读博文,了解到在linux和unix系统中的socket文件是为了建立两个车光绪之间的连接使用的,而在MySQL中,当mysql启动成功是,会根据配置文件的设定的路径(如:tmp/mysql.sock),在响应文件夹中生成socket文件,用于连接数据库;
解决问题:
再接下来阅读,问题却不一样了,博主的问题是一个站的日志文件占用过多导致系统盘满了,而我这里是seo大量建站,还把站点直接上传到系统盘导致的,所以问题继续;
思来想去,有个笨办法,把系统盘中的东西拷贝一份到数据盘(内存大),然后删除wdcp中的站点,重新建站,并把依赖文件夹引到复制的位置,腾出系统盘;
腾出系统盘,问题得到了解决,wdcp的phpmyadmin可以用了。
进一步
但seo使用dede建的站还是提示数据库连接不上,经通同事提点,将dede建站的配置文件修改:localhost改为127.0.0.1就可以使用了。
心生奇怪,localhost和127.0.0.1有什么分别,一直以为这两个是一样的,查资料后发觉,确实不一样:
localhost 不经网卡传输,不受网络防火墙和网卡相关的限制。
localhost | 127.0.0.1 | 本机ip | |
---|---|---|---|
网络 | 不联网 | 不联网 | 联网 |
传输 | 不使用网卡,不受防火墙和网卡限制 | 网卡传输,受防火墙和网卡限制 | 网卡传输,受防火墙和网卡限制 |
访问 | 本机访问 | 本机访问 | 本机或外部都可访问 |
所以一般使用localhost作为配置。
但这个并没有解决我们的问题!
求助谷歌后,在stackoverflow上有个问题就是127.0.0.1和localhost的区别,有一条回答说:
谷歌翻译:有些程序会区别对待“localhost”,mysql客户端会将localhost视为连接到本地unix域套接字的请求,而不是使用tcp连接到127.0.0.1上的服务器。
mysql 为啥这么特殊,越研究越发现这个事不深入linux是不行的。