Herbert
This user hasn't shared any biographical information
Homepage: http://www.shishuo.com/
Posts by Herbert
Ubuntu安装MySQL
Jan 7th
好久没写日志了,前段时间,域名没有备案,封掉了。
Ubuntu安装MySQL很方便,直接运行
sudo apt-get install mysql-server
就可以了。
但如果要MySQL能够外部访问的话,要做下修改。
登录MySQL
mysql -u root -p
授予需要外部访问的IP或者用户的权限
GRANT ALL PRIVILEGES ON *.* TO shishuo@'%' IDENTIFIED BY "shishuopassword";
其中 *.* 表示 数据库.表,你可以写为 shishuo.*
如:
GRANT ALL PRIVILEGES ON shishuodatabase.* TO shishuo@'%' IDENTIFIED BY "shishuopassword";
这条语句的意思就是,shishuo这个用户可以在任何IP下,用 shishuopassword 密码,访问shishuodatabase数据库,并具有对shishuodatabase的所有权限。
然后
vi /etc/mysql/my.cnf
修改
bind-address = 127.0.0.1
为
#bind-address = 127.0.0.1
重启
/etc/init.d/mysql restart
这样外部也能访问了。
解读Nginx的Memcached Module
Dec 1st
发现SyntaxHighlighter这个代码高亮插件有点问题,所以还是发个文件地址吧。
ng_http_memcached_module.c
修复Ubuntu 9.10
Nov 28th
昨晚破解Win7失败,导致又进不来Win7了@_@,修复一下吧。
首先光碟启动Ubuntu,非安装进入Ubuntu下的控制台。
sudo mount /dev/sda6 /mnt //如果要你的/boot是单独分区的话,需要运行以下命令 sudo mount /dev/sda6 /mnt/boot sudo grub-install --root-directory=/mnt/ /dev/sda
进入Ubuntu系统后,在运行以下命令
sudo update-grub sudo grub-install /dev/sda
如果你想修改启动顺序阿,启动默认时间阿,可以修改
/boot/grub/grub.cfg
这个和Grub1的配置文件有点不同,因为Ubuntu 9.10使用的是Grub2了。
2009年度总结
Nov 27th
今年最主要的收获还是关于Linux系统方面的知识。
统计Apache的访问UV
cat /home/app/httpd/logs/access_log|grep 04/Nov/2009 | awk '{print $1}' | sort | uniq -c | sort -rn | wc -l
系统实时并发
tail -10000 /home/app/httpd/logs/access_log | awk '{print $5}' | sort | uniq -c | sort -rn | head
系统连接状态统计
netstat -an | awk '{print $6}' | sort |uniq -c| sort -rn
Emiller的Nginx模块开发指南中文版(PDF)
Nov 23rd
译者:姚伟斌 草稿:2009年9月21日
下载链接:http://yaoweibin.cn/maindoc/nginx-modules-guide-cn.pdf
当负载过高时重启Apache
Nov 23rd
最近半年碰到了几次,由于“蜘蛛”导致机器挂掉了,所以想出了这个方法,等系统负载过高的情况下,直接重启Apache。这就是Twitter提倡的那样,等进程杀死你之前,你先杀死他(原话不记得了)。其实这种方法早就在业界使用了。
来吧,看看我写的脚本。
checkload.sh
#!/bin/sh
TOP_SYS_LOAD_NUM=5
SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`
echo $(date +"%y-%m-%d") `uptime`
if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]
then
echo "##" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l`
pkill httpd
sleep 10
for i in 1 2 3
do
if [ `pgrep httpd | wc -l` -le 0 ]
then
/home/app/httpd/bin/apachectl start
sleep 30
echo "##" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
done
else
if [ `pgrep httpd | wc -l` -le 0 ]
then
/home/app/httpd/bin/apachectl start
sleep 30
echo "##" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
fi
然后在crontab里增加定时执行的命令
*/2 * * * * (/root/checkload.sh >>/root/checkload.log)
每两分钟检查一次系统负载。
[Nginx]把源代码导到Eclipse中去
Nov 22nd
下载来Nginx-0.7.64,成功的把源代码部署到来Eclipse-CDT里,总结一下导入过程中碰到的困难和技巧。
首先自己先安装Nginx,比如我就安装在
解压nginx的源代码,
tar zxvf nginx-0.7.64.tar.gz
解压的目录为
/home/herbert/Downloads/nginx-0.7.64
再把nginx安装到/home/herbert/app/nginx-0.7.64目录。
herbert是我的用户名
app是应用程序的文件夹
cd nginx-0.7.64 ./configure --prefix=/home/herbert/app/nginx-0.7.64 make make install
我的习惯是再创建一个软链接 nginx
ln -s nginx-0.7.64 nginx
到此Nginx安装完成来,可以尝试运行一下。
/home/herbert/app/nginx-0.7.64/sbin/nginx
//真正的工作开始来
1、创建Hello Wold ANSI C Project工程,我们把工程的名字定为 nginx-0.7.64,同时再把工程里的nginx-0.7.64.c文件删除掉。
2、/home/herbert/Downloads/nginx-0.7.64里的所有*.h文件拷贝到/home/herbert/workspace-cpp/include/nginx目录,然后在项目的属性(点击项目右键的属性)–>C/C++ Build –>Setting中的
GCC C Compiler 选项中的 Directories 中包含头文件路径
/home/herbert/workspace-cpp/include/nginx
再在GCC C Linker 中的 Libraries 中分别添加 crypt , pcre , crypto , z库。
这个是从/home/herbert/Downloads/nginx-0.7.64/objs/Makefile这个文件得知的(改天细细研究Nginx的Make文件的时候再仔细说去了)。
3、把/home/herbert/Downloads/nginx-0.7.64里的所有*.c文件拷贝到工程的src里去,我的是/home/herbert/workspace-cpp/nginx-0.7.64/src。
4、最后就可以运行来,在这个过程中,碰到说什么没有,什么找不到的话,那个.c文件就可以从工程中删除掉,从Makefile可以看出有些源文件在此次编译过程中是多余的。
虽然说的很傻瓜式来,估计大家在实际操作的时候还会碰到很多问题。
Ubuntu关于arial32.exe的错误
Nov 20th
用apt-get安装wine的时候出现如下错误:
--2009-11-20 22:41:29-- http://downloads.sourceforge.net/corefonts/andale32.exe Resolving downloads.sourceforge.net... 216.34.181.59 Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://ncu.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [following] --2009-11-20 22:41:30-- http://ncu.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe Resolving ncu.dl.sourceforge.net... 140.115.17.45 Connecting to ncu.dl.sourceforge.net|140.115.17.45|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 198384 (194K) [application/octet-stream] Saving to: `./andale32.exe'
解决方法是:
sudo aptitude purge ttf-mscorefonts-installer ubuntu-restricted-extras
Ubuntu下的Eclipse安装SVN插件
Nov 20th
这个问题解决来好几天,终于发现来一个帖子,解决来这个问题。
解决方法如下:
sudo apt-get remove openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib sudo apt-get install libsvn-java libsvn-javahl sudo ln -s /usr/lib/jni/libsvnjavahl-1.so /usr/lib/jvm/java-6-sun/jre/lib/i386/client/libsvnjavahl-1.so
然后在 eclipse.ini 要加一行
-Djava.library.path=/usr/lib/jni
参考文章:
http://forum.ubuntu.org.cn/viewtopic.php?f=70&t=89018&view=next 的四楼
key/value数据库
Nov 12th
QDBM:
NDBM : New DBM written by BSD
SDBM : Substitute DBM written by Ozan S. Yigit
GDBM : GNU Database Manager written by Philip A. Nelson et al
TDB : Trivial Database written by Andrew Tridgell et al
TinyCDB : Constant Database written by Michael Tokarev
Berkeley DB : Berkeley DB written by Sleepycat Software