ubuntu mysql更改tmp路径

因为mysql经常要把文件定入tmp目录,而tmp的目录为/tmp,为了提高性能,所以考虑更改tmpdir目录为/run/shm,即使用内存来存储。
1、打开/etc/mysql/my.cnf
更改tmpdir = /tmp为

  1. tmpdir = /run/shm

2、更改/etc/apparmor.d/usr.sbin.mysqld添加:

  1. /run/shm/* rw,

3、重启mysql和apparmor

  1. /etc/init.d/apparmor restart
  2. /etc/init.d/mysql restart

分布式存储MooseFS的搭建

MooseFS介绍

mooseFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
MooseFS文件系统结构包括以下四种角色:
1 管理服务器managing server (master)
2 元数据日志服务器Metalogger server(Metalogger)
3数据存储服务器data servers (chunkservers)
4 客户机挂载使用client computers
原理图:
存储

存储

搭建的环境介绍

Master server: 10.96.153.223
Metalogger server : 10.96.153.224
chunk server : 10.96.153.221 10.96.153.222
client server : 10.96.153.225
这里使用两台chunk server,master、metalogger和client各一台进行测试,当然,如果由于服务器有限,可以把master和metalogger分别放在chunkserver上。

Master Server安装

1、下载解压

  1. #cd /usr/src
  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
  3. #tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

  1. #groupadd mfs
  2. #useradd -g mfs mfs
  3. #cd mfs-1.6.26/
  4. #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfschunkserver

3、编译并安装

  1. #make
  2. #make install

4、配置文件

  1. #cd /usr/local/mfs/etc
  2. #cp mfsmaster.cfg.dist mfsmaster.cfg
  3. #cp mfsexports.cfg.dist mfsexports.cfg

更改配置文件mfsexports.cfg

  1. 10.96.153.0/24 / rw,alldirs,maproot=0

5、启动前准备

  1. #cd /usr/local/mfs/var/mfs
  2. #cp metadata.mfs.empty metadata.mfs
  3. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、启动mfsmaster

  1. #/usr/local/mfs/sbin/mfsmaster start

7、监控服务

  1. #/usr/local/mfs/sbin/mfscgiserv

浏览器输入10.96.153.221:9425

mfsmetalogger搭建

1、下载解压

  1. #cd /usr/src
  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
  3. #tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

  1. #groupadd mfs
  2. #useradd -g mfs mfs
  3. #cd mfs-1.6.26/
  4. #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfschunkserver

3、编译并安装

  1. #make
  2. #make install

4、配置文件

  1. #cd /usr/local/mfs/etc
  2. #cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

5、启动前准备

  1. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

6、启动mfsmetalogger

  1. ##/usr/local/mfs/sbin/mfsmetalogger start

Chunk servers 安装

1、下载解压

  1. #cd /usr/src
  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
  3. #tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

  1. #groupadd mfs
  2. #useradd -g mfs mfs
  3. #cd mfs-1.6.26/
  4. #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmount –disable-mfsmaster

3、编译并安装

  1. #make
  2. #make install

4、创建磁盘(100G)

  1. #dd if=/dev/zero of=/mnt/storage/mfschunks1 bs=1024 count=1 seek=$((100*1024*1024-1))
  2. #mkfs -t ext3 /mnt/storage/mfschunks1
  3. #mkdir -p /mnt/mfs1
  4. #mount -t ext3 -o loop /mnt/storage/mfschunks1 /mnt/mfs1

5、配置文件

  1. #cd /usr/local/mfs/etc
  2. #cp mfschunkserver.cfg.dist mfschunkserver.cfg
  3. #cp mfshdd.cfg.dist mfshdd.cfg

更改配置文件mfshdd.cfg,加入:

  1. /mnt/mfs1

6、启动前准备

  1. #echo "10.96.153.221 mfsmaster" >> /etc/hosts
  2. #chown -R mfs:mfs /mnt/mfs1

7、启动chunkserver

  1. ##/usr/local/mfs/sbin/mfschunkserver start

mfsclient安装

1、下载解压

  1. #cd /usr/src
  2. #wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.26/mfs-1.6.26.tar.gz
  3. #tar xzf mfs-1.6.26.tar.gz

2、配置编译参数

  1. #groupadd mfs
  2. #useradd -g mfs mfs
  3. #cd mfs-1.6.26/
  4. #./configure –prefix=/usr/local/mfs –with-default-user=mfs –with-default-group=mfs –disable-mfsmaster–disable-mfschunkserver

3、编译并安装

  1. #make
  2. #make install

4、启动前准备

  1. mkdir /mnt/mfs
  2. #echo "10.96.153.221 mfsmaster" >> /etc/hosts

5、开始挂载

  1. #/usr/local/mfs/bin/mfsmount /mnt/mfs -H mfsmaster

6、检查
df -h查看输出

MFS维护

5.1、启动MFS集群

  • 1、启动mfsmaster 进程
  • 2、启动所有的mfschunkserver 进程
  • 3、启动mfsmetalogger 进程(如果配置了mfsmetalogger)
  • 4、当所有的chunkservers 连接到MooseFS master 后,任何数目的客户端可以利用mfsmount 去挂接被export 的文件系统。(可以通过检查master 的日志或是CGI 监视器来查看是否所有的chunkserver被连接)。

5.2、停止MFS集群

  • 1、在所有的客户端卸载MooseFS 文件系统(用umount 命令或者是其它等效的命令)
  • 2、用mfschunkserver stop 命令停止chunkserver 进程
  • 3、用mfsmetalogger stop 命令停止metalogger 进程
  • 4、用mfsmaster stop 命令停止master 进程

5.3、MFS chunkservers 的维护

若每个文件的goal(目标)都不小于2,并且没有under-goal 文件(这些可以用mfsgetgoal –r和mfsdirinfo 命令来检查),那么一个单一的chunkserver 在任何时刻都可能做停止或者是重新启动。以后每当需要做停止或者是重新启动另一个chunkserver 的时候,要确定之前的chunkserver 被连接,而且要没有under-goal chunks。

5.4、MFS元数据备份

用rsync定时备份/usr/local/app/soft/mfs/var/mfs/metadata.mfs.back

5.5、MFS Master的恢复

  1. mfsmetarestore -a

5.6、从MetaLogger中恢复Master

  1. mfsmetarestore -m metadata.mfs.back -o metadata.mfs changelog_ml.*.mfs

cx_Freeze给python(pyqt)程序打包成exe过程

  1. 1、下载cx_frezze,安装。安装后会在 python目录 D:Python27Libsite-packagescx_FreezesamplesPyQt4 下有一个 setup.py
  2.  
  3. 2、把这个setup.py拷贝到需要打包的pyqt程序所在的目录,假设要打包的pyqt程序叫 main_window.py
  4.  
  5. 3、修改setup.py,将默认的“PyQt4app.py"替换成“main_window.py”
  6.  
  7. 4、cmd 切换到当前路径,运行 python setup.py build 即可
  1. BTW:今天打包了用pyqt写的版本发布工具,打包后运行程序出现"driver not loaded"
  2. 解决方法如下:
  3. 在程序的根目录新建子目录"sqldrivers",到C:Python27Libsite-packagesPyQt4pluginssqldrivers复制所需驱动到此目录,比如我用的是mysql,所以就复制了qsqlmysql4.dll。

转自:oldman的博客

thttpd轻量级web服务器(HTTP/1.1和简单的CGI支持)

thttpd简介

thttpd是一个非常小巧的轻量级web server,它非常非常简单,仅仅提供了HTTP/1.1和简单的CGI支持,nginx需要支持cgi,可以安装这个轻量级的web server。

thttpd安装

  1. cd /tmp/
  2. wget http://acme.com/software/thttpd/thttpd-2.25b.tar.gz
  3. tar xzf thttpd-2.25b.tar.gz
  4. cd thttpd-2.25b/
  5. ./configure –prefix=/usr/local/thttpd
  6. make && make install

可能出现的错误:

  1. htpasswd.c:52: error: conflicting types for ‘getline’

解决方法:编辑htpasswd.c ,把getline替换成get_line

thttpd配置

新建/usr/local/thttpd/conf/thttpd.conf文件:

  1. # BEWARE : No empty lines are allowed!
  2. # This section overrides defaults
  3. # This section _documents_ defaults in effect
  4. # port=80
  5. # nosymlink         # default = !chroot
  6. # novhost
  7. # nocgipat
  8. # nothrottles
  9. # host=0.0.0.0
  10. # charset=iso-8859-1
  11. host=127.0.0.1
  12. port=8008
  13. user=thttpd
  14. logfile=/usr/local/thttpd/log/thttpd.log
  15. pidfile=/usr/local/thttpd/log/thttpd.pid
  16. dir=/usr/local/thttpd/www/
  17. cgipat=**.cgi|**.pl

启动thttpd

  1. /usr/local/thttpd/sbin/thttpd -C /usr/local/thttpd/conf/thttpd.conf

官方网站:http://acme.com/software/thttpd/

linux双线/多线机器路由配置

双/多线路需要增加 原路返回路由

  1. /bin/ip route flush table 100
  2. /bin/ip route add default via 电信网关 dev 电信网卡设备名称 src 电信IP table 100 prio 50
  3. /bin/ip rule add from 电信IP table 100
  4.  
  5. /bin/ip route flush table 200
  6. /bin/ip route add default via 联通网关 dev 联通网卡设备名称 src  联通IP table 200 prio 50
  7. /bin/ip rule add from 联通IP table 200

修改上面对应的IP,网关和设备名称,将上面内容写入/etc/rc.local开机执行

转自:高进波博客

解决phpmyadmin间或响应慢的问题

今天安装了最新版的phpmyadmin,安装好了测试了一下,发现间或的反应超慢,查看了nginx的日志,是报fastcgi连接超时。然后打开fastcgi的慢日志,发现如下错误:

  1. [10-May-2013 11:15:16]  [pool www] pid 10992
  2. script_filename = /usr/share/nginx/html/phpmyadmin-1688/version_check.php
  3. [0x0000000002902e78] file_get_contents() /usr/share/nginx/html/phpmyadmin-1688/version_check.php:24

问题明显了,是phpmyadmin不断地进行版本的检查更新,而国内的服务器连接phpmyadmin服务器又是超慢的,且还有可能无法连接,所以导致了超时的现象。
解决方法:

编辑version_check.php文件,在

  1. <?php

下面添加

  1. exit;

保存测试,响应慢的问题解决了。