Another MySQL daemon already running with the same unix socket
mysql mysql.sock被异常占用,导致进程无法拉起,删除mysql.sock,重启拉起进程 service mysqld restart
mysql mysql.sock被异常占用,导致进程无法拉起,删除mysql.sock,重启拉起进程 service mysqld restart
今天遇到的问题:同样都是win7 系统,同样的安装路径,编译工具和代码,在新的机器上就是编译不了,提示如下:
make: *** [mmi_feature_check] Error 1
熟悉mtk的同学一看就知道是路径问题.
于是在相关perl脚本中分段加打印,终于定位出原来是新的机器不支持命令行的空格缩写格式,不支持如 c:Progra~1 这样的写法.
具体原因待日后有时间再进一步定位.暂时通过修改工具路径规避此问题.
已验证:eg1:
#!/bin/sh
cd /var/lib/mysql
echo "$(date) start mysql_deamon running..."
sleep 180
while [ 1 ]
do
echo "$(date) mysql_deamon running..."
sleep 30
for i in `cat mysqld.log |grep crash|awk -F "'" '{print $2}'|sort -u|sed -e '1d' `;
do
if [ "$i" != "./xxx/xxx" ]; then
echo 'not find xxx crash'
else
echo 'find xxx crash'
echo 'repair xxx'
mysqlcheck -uxxx -pxxx xxx xxx -r
fi
echo 'clear the err log'
> mysqld.log
done
done
eg1 中红色部分代码其实可以1句搞定,由于本人不善 shell 提取字符操作,只能做固定判断了
未验证 eg2:
#!/bin/bash
#This script edit by badboy connect leezhenhua17@163.com
#This script used by repair tables
mysql_host=localhost
mysql_user=root
mysql_pass=123456 #密码如果带特殊字符如分号可以这么写 root;2010就可以了
database=test
tables=$(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “show tables”)
for arg in $tables
do
check_status=$(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “check table $arg” | awk ‘{ print $4 }’)
if [ "$check_status" = "OK" ]
then
echo “$arg is ok”
else
echo $(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “repair table $arg”)
fi
echo $(mysql -h$mysql_host -u$mysql_user -p$mysql_pass $database -A -Bse “optimize table $arg”)
done
未验证 eg3:
#!/bin/bash
#author:itnihao
#mail:itnihao@qq.com
#date 2013-02-18
#version v1.0
#function:repair mysql table
User=root
Password=123456
Host=192.168.1.10
Database=$(mysql -u${User} -p${Password} -h${Host} -e 'show databases'|grep -v 'Database')
for DBname in ${Database}
do
table=$(mysql -u${User} -p${Password} -h${Host} ${DBname} -e 'show tables'|grep -v tables_in_mysql)
for tableName in ${table}
do
mysql -u${User} -p${Password} -h${Host} ${DBname} -e "check table ${tableName}" [ "$?" != 0 ] &&mysql -u${User} -p${Password} -h${Host} ${DBname} -e "repair table ${tableName}"
done
done
1、从网上查了下有的说是频繁查询和更表造成的索引错误。
2.还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、在提在数据库表提供服务时对表的原文件进行某种操作都 有可能导致MYSQL数据库表被损坏而无法读取数据。总之就是因为某些不可测的问题造成表的损坏。
修复:
mysql> REPAIR TABLE int_dev_gps;
目前的生产环境使用的vps的shell监护脚本中,发现有很大的概率reboot命令会僵死,但是web页面面板功能正常。正好网站提供了api接口,所以可以通过api完成可靠的系统复位。
我们可以在shell中用wget 和curl 模拟客户端,来发送指令的url.
curl 常用的 开关:
-o 忽略下载
-s 忽略返回
其他的见 --help
样例:
curl -o /dev/null -s "http://xxxx.com"
新增的centos vps 发现没有iostat,而且 yum install iostat 失败。
1. 安装
# yum install sysstat
2. 启动
# /etc/init.d/sysstat start
3. 使用
# iostat -x 1
每1秒刷新1次
手动升级wordpress 后,发现无法上传附件,于是仔细分析新文件夹和老备份文件的差异,发现是由于cp时改变了upload 文件夹属性导致。wordpress upload文件夹的 归属是 apache:apache 所以在手动更新文件时,要使用 -Rp 参数,保持原文件的属性不变。
临时关闭:执行 swapoff -a ,重启后又会开启swap。
永久关闭:注释掉 /etc/fstab 里的 swap 行,重启生效或者暂时swapoff -a,重启后不会再开启swap。