浏览模式: 标准 | 列表 技术归总

wdlinux之mysql无法启动解决

某天,连接某VPS时显示程序无法连接mysql服务,SSH登陆进行问题排查。

先查看mysql是否运行:ps auxf | grep mysql

如果有进程存在,那么可以考虑杀死mysql的进程,因为mysql可能已经卡死掉了,命令:kill mysql_pid,然后再尝试启动mysql服务。

当然也可以直接采用pkill -9 mysql这样暴力的杀死进程方式,不过正冰不推荐这样操作,有可能导致数据意外丢失。

本案例中mysql并没运行,那么尝试启动它:service mysqld start

结果并不乐观,返回信息如下: 

  • ERROR! MySQL manager or server PID file could not be found!
  • Starting MySQL. ERROR! Manager of pid-file quit without updating file. 

通过这样的错误提示并不能准确定位问题,继续去看mysql的错误日志文件,位于/www/wdlinux/mysql/var/vps.err,最新的启动错误信息如下: 

  • 120513 14:20:51 mysqld_safe Starting mysqld daemon with databases from /www/wdlinux/mysql-5.1.61/var
  • 120513 14:20:51 [ERROR] /www/wdlinux/mysql-5.1.61/libexec/mysqld: unknown option '--skip-innodb'
  • 120513 14:20:51 [ERROR] Aborting
  • 120513 14:20:51 [Note] /www/wdlinux/mysql-5.1.61/libexec/mysqld: Shutdown complete
  • 120513 14:20:51 mysqld_safe mysqld from pid file /www/wdlinux/mysql-5.1.61/var/vps.pid ended

解决方法很简单了,编辑/www/wdlinux/etc/my.cnf文件,将其中的--skip-innodb注释掉即可,也就是在这个项目前加#并保存,然后启动mysql搞定。

Tags: linux, wdlinux, mysql

Discuz! X2会员用户的签名数据库存储表列

discuz! X2会员用户的签名数据库存储表列如下:

表:pre_common_member_field_forum

列:sightml


另外,的注册机用户很多,而这些用户的显著特点就是会在帖子内容下方增加一条如下代码的签名线,再放上他们的广告代码。

[img]static/image/common/sigline.gif[/img]

那么清除这类用户就很简单了,只需要进入数据库如下操作查找出这批用户,然后记录ID,干掉即可。

SELECT * FROM `pre_forum_post` WHERE `MESSAGE` LIKE '%SIGLINE%'

Tags: discuz

时代互联手机站因MYSQL出错爆路径

为了快速浏览某域名是否被注册或者是whois信息,我会选择“时代互联手机站”,也就是www.times.mobi。今天浏览时代互联手机站打开http://www.times.mobi/domain/whois.php?chrDomain=baidu.com想查看baidu的whois信息,结果报错如下:

Warning: mysql_pconnect() [function.mysql-pconnect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /liusra2/now.cn/web/wap/conf/db.inc.php on line 5

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/wap/conf/db.inc.php on line 6

Warning: include(../conf/global/scp/scp_server.inc.php) [function.include]: failed to open stream: No such file or directory in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 9

Warning: include() [function.include]: Failed opening '../conf/global/scp/scp_server.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 9

Warning: include(../conf/global/scp/scp_config.inc.php) [function.include]: failed to open stream: No such file or directory in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 10

Warning: include() [function.include]: Failed opening '../conf/global/scp/scp_config.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /liusra2/now.cn/web/www/api/domain/domainbase.inc.php on line 10

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /liusra2/now.cn/web/www/api/whois/whoisclass.inc.php on line 30

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)SELECT * FROM WhoisCache WHERE Domain='baidu.com

从错误中可以看出MySQL出错了……

Tags: 时代互联手机站, mysql

查看MySQL是否支持InnoDB引擎以及不支持的解决办法

通过命令行进入mysql或者是通过phpmyadmin进行操作,执行如下命令:

SHOW variables like "have_%"

显示结果中会有如下3种可能的结果:

  • have_innodb YES
  • have_innodb NO
  • have_innodb DISABLED

这3种结果分别对应:

  • 已经开启InnoDB引擎
  • 未安装InnoDB引擎
  • 未启用InnoDB引擎

针对第二种未安装,只需要安装即可;针对第三种未启用,则打开mysql配置文件,找到 skip-innodb项,将其改成#skip-innodb,之后重启mysql服务即可。

Tags: mysql, innodb

利用wget配合bash脚本同时下载多个文件

先把需要下载的文件写入到一个文件中,命名为urls.txt,比如:

  • http://blog.is36.com/a.jpg
  • http://blog.is36.com/b.jpg
  • http://blog.is36.com/c.jpg

再写一个bash脚本,如下:

  • while read url
  • do
  • wget -b "$url" -o /dev/null
  • done < urls.txt

或者是:wget -b -i url.txt

如果需要多次循环下载urls.txt中的文件,则如下(例子代表重复20次):

  • for (( i = 0; i < 20; i++))
  • do
  •     while read url
  •     do
  •     wget -b "$url" -o /dev/null
  •     done < urls.txt
  • done

Tags: wget

Linux VPS被入侵之暴力破解信息查看

linux系统下/var/log/secure文件存储着用户通过ssh登录的安全信息,包括成功信息与失败信息,从中可以看到哪些人暴力破解过SSH的root用户密码:

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'

查询出来的结果中包含了“ip地址=数量”,排除掉自己登录时输错密码的项,其他均是他人试图暴力破解你的SSH登录密码。

正冰建议大家对ssh端口进行修改、对root密码复杂化修改以及禁止root用户登录,具体见另外一篇文章《提升linux系统安全之修改SSH端口与禁止ROOT登陆》。

Tags: linux, ssh

取EXCEL表奇数行数据

原数据在A列,需取A列的奇数行数据,则在B列输入如下函数,并下拉即可。

=IF(MOD(ROW(A1),2),A1,"")

给PHP 5.2 HASH 漏洞打补丁

网络消息称当前包括PHP、Java、Ruby在内的很多语言版本存在漏洞,PHP官方开发组成员Laruence表示攻击者可以通过构造Hash冲突实现拒绝服务攻击,并提供了实例。这个攻击方法危害很高,攻击成本也很小,一个台式机可以轻松搞垮数十台、上百台服务器。

任何攻击者可以利用这个漏洞DDoS掉世界上的大部分网站!危害等级绝对是核弹级别。因此,PHP官方开发组紧急发布了补丁,请尽速修补。

PHP方面,<= 5.3.8, <= 5.4.0RC3的所有版本均会受此漏洞影响。PHP 5.3.9和PHP 5.4.0已经包含了针对此漏洞的补丁,但由于两个版本目前仍然在RC状态,无法用于生产服务器升级。至于PHP 5.2,官方开发组表示不会为了这个漏洞发布新版。

尽管如此,仍然有第三方给出了php 5.2的patch,以修正此问题。

修复漏洞之前,先查看一下系统的php版本,以php安装位置为/usr/local/php/为例,执行如下命令:/usr/local/php/bin/php -v

返回如下信息:

PHP 5.2.17 (cli) (built: Dec 29 2011 20:33:42)

修复完成后再次执行则返回如下信息,则表示修复完成:

PHP 5.2.17p1 (cli) (built: Jan 10 2012 16:31:00)

具体漏洞修补过程:

  1. 前往patch下载(https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars)下载对应版本的patch文件,如php-5.2.17-max-input-vars.patch(https://raw.github.com/laruence/laruence.github.com/master/php-5.2-max-input-vars/php-5.2.17-max-input-vars.patch)
  2. 进入php编译目录,执行patch -p1 < path/to/php-5.2.*-max-input-vars.patch
  3. 重新执行make & make install