2009年5月10日星期日

CentOS 上安装Memcached笔记

环境:CentOS 5,X64
软件包:libevent-1.4.10(http://www.monkey.org/~provos/libevent/)
、memcached-1.2.8(http://www.danga.com/memcached/dist/)
说明:安装memcached前需要先安装libevent

开始:
安装libevent
CFLAGS=-m64 LDFLAGS=-m64 ./configure
make
sudo make install

安装memcached
CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=/usr/local/memcached
make
sudo make install

启动memcached
/usr/local/memcached/bin/memcached -d -m 10 -p 11211 -u root
遭遇:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

通过LD_DEBUG=libs /usr/local/memcached/bin/memcached -h
看到类似输出
---------------------
30596: find library=libevent-1.4.so.2 [0]; searching
30596: search cache=/etc/ld.so.cache
30596: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64
/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64
(system search path)
30596: trying file=/lib64/tls/x86_64/libevent-1.4.so.2
30596: trying file=/lib64/tls/libevent-1.4.so.2
30596: trying file=/lib64/x86_64/libevent-1.4.so.2
30596: trying file=/lib64/libevent-1.4.so.2
30596: trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
30596: trying file=/usr/lib64/tls/libevent-1.4.so.2
30596: trying file=/usr/lib64/x86_64/libevent-1.4.so.2
30596: trying file=/usr/lib64/libevent-1.4.so.2

-------------------------------
可以看到是在加载/usr/lib64/libevent-1.4.so.2文件时出现了问题,系统中确实是没有该文件的,查找后发现libevent-1.4.so.2存在于/usr/local/lib目录
然后做个软链接
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2

然后再来:
/usr/local/memcached/bin/memcached -d -m 1024 -p 11211 -u root

ps -A | grep memcached
可以看到
12389 ? 00:00:00 memcached
表明OK

那么,如何让它在系统启动的时候自启动呢:
达人告诉我:
在/etc/rc.d/rc.local中加入一行,上面命令
try it

2009年5月7日星期四

centos 5 64bit 安装mysql 5.1笔记

执行:
CFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=/usr/local/mysql --enable-assembler --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312,binary --enable-thread-safe-client --with-pthread --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-readline --with-plugins=innobase


遭遇:../depcomp: line 571: exec: g++: not found

执行:yum install gcc-c++

再次执行configure,OK

然后就是make && sudo make install, OK

接下去配置
添加组:/usr/sbin/groupadd -r mysql
添加用户:usr/sbin/useradd -c "mysql daemon" -r -s /bin/false -d /usr/local/mysql/var -g mysql -p mysql mysql

达人说。。。
---------------------------
cd /usr/local/mysql 进入mysql目录
bin/mysql_install_db --user=mysql 安装默认数据库
cp share/mysql/my-medium.cnf /etc/my.cnf 复制配置文件(可能需要适当修改)
cp share/mysql/mysql.server /etc/init.d/mysqld 复制mysql启动脚本
chmod 755 /etc/init.d/mysqld 更改mysql启动脚本权限,执行权限必须
chkconfig --add mysqld 添加mysql服务
chkconfig --level 35 mysqld on 设置服务在运行级3,5启动
chkconfig --list mysqld 显示mysql服务配置情况
cd var 进入mysql数据目录
chown mysql.mysql -R * 更改权限,权限不正确会导致无法启动
cd ../libexec 进入守护进程目录
cp mysqld mysqld.old 备份文件
strip mysqld 删除调试符号,生成的二进制可以快4%
service mysqld start 启动服务

注意这里,如果你的mysql无法启动,请查看/usr/local/mysql/var目录下有一个扩展名为.err的文件,文件中会记录mysql无法启动的原因。请根据需要进行修改。接下来我们需要进入mysql并设置密码:
---------------------------
我就这么做了

然后遭遇:[ERROR] /usr/local/mysql/libexec/mysqld: unknown option '--skip-federated'
在/etc/my.cnf中注视掉--skip-federated就OK了


cd /usr/local/mysql/bin 进入mysql目录
./mysqladmin -uroot password mysql 设置root帐户的密码
./mysql -uroot -p 登录并输入密码,即上面设置的mysql
mysql>use mysql; 打开名为mysql的数据库

下面这句有点长,回车前请仔细核对,
mysql>update user set password=password('mysql') where user='root';
为安全起见,为所有的root用户设置密码。本例中密码为mysql, 你可以任意设定
mysql>update user set host='%' where user='root' and host='localhost'; 设置root帐户允许远程连接

mysql>delete from user where password=""; 删除用于本机匿名连接的空密码帐号
mysql>flush privileges; 重新读授权表,否则用户权限不会更新
mysql>quit 退出mysql

OK了,结束了,万事大吉,感谢“来源:不详 作者:佚名 时间:2009-4-4 10:51:36 发布:黑客软件园“的http://www.3389hack.com/xueyuan/fuwuqi/MySQL/22382.html

2009年5月6日星期三

ia64/amd64/em64是不同的cpu构架

转自http://www.linuxdiyf.com/viewarticle.php?id=84404
Lhhba发布于 2008-3-30 | 659次阅读 字号: 大 中 小 (网友评论 1 条) 我要评论
你在市面上买的到的intel 64位 cpu在gentoo里都属于amd64范畴

这个架构应该称为 x86_64,不过amd是最早推出这个架构的,gentoo就这么一直叫下来了,没有改

IA64指的是安腾,不是X86架构的。intel的amd64叫EM64T

ia64主要用在服务器上面,而不是我们平常使用的桌面,通常这些cpu很贵,相关的内存以及硬盘同样很贵!

其中后面两个比较相似,或者说是完全相同,主要用于个人桌面,

所以一般的linux发行版都把“amd”64和intel em“64”和起来叫(amd64)就是说你买了这两种的cpu要安装amd64版本的linux系统,

我记得debian的文档里面是这样标注的:amd是取自amd64,后面的64是来自于em64。

ia64是相对于ia32来讲得,

完全是另外一会事,兼容ia32,但是运行ia32得代码效果很差,比ia32得cpu还差,

市场上intel的cpu,除了安腾以外都不是ia64,

大家使用得多数是ia32的cpu或者是intel的em64或者是amd的amd64,

ia32的cpu已经很少买到了,

P4 5**的还是ia32,

P4 6**的就已经是em64了,

gentoo的文档里面有一个链接介绍amd64和ia32的性能比较,

大体的意思是说64在对cpu和内存比较苛刻的条件下比32有明显的提升(好像是用一些数据库软件以及网络服务软件来测的),但是在日常的软件下面没有太大的差距。