mysql主从同步配置(笔记)

[不指定 2010/07/16 12:31 | by admin ]
特别说明:
配置mysql主从备份一定要使用相同版本的数据库,如不可以使用5.0和5.1的交杂.

1.主机
建任意主机用户,并赋于对指定数据库的相应权限,并开放3306端口的外网访问(防火墙),如添加的用户为admin,创建的数据库为test,如以下主机为linux
vi /etc/my.cnf
在[mysqld]段添加:
server-id       = 1
log-bin
重启mysql
查看状态:
mysql -u root -p
输入密码后,
show master status;
看到如下:
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| centos-bin.000001 |      106 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

从服务器连接测试
比如主服务器IP为192.168.0.2
mysql -h 192.168.0.2 -u admin -p
能正常登录为成功


2.从服务器my.ini(如主机为win)
[mysqld]段添加:
server-id=2
master-host=192.168.0.2
master-port=3306
master-user=admin
master-password=123456
master-connect-retry=60
replicate-do-db=test

检查状态:
mysql -u root -p
show slave status\G;

看到
Slave_IO_Running:Yes
Slave_SQL_running:Yes
说明是成功的

这时候,可以在主机上安装程序,如安装Disucz,只要主机上的数据库发生了改变,都会自动备份到从服务器的数据库里

相关命令:
Slave start
Slave stop
Reset slave
Show slave status
Show master status
主服务器命令需登录主机执行,从命令登录从服务器运行,当然,在从服务器运行主机的mysql也可以,正如:
mysql -h 192.168.0.2 -u admin -p

memcached服务端安装脚本

[不指定 2010/07/08 11:31 | by admin ]
自己写的一个简单的脚本,执行安装即可
本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com

#!/bin/bash
clear
echo "--------------------memcached安装脚本,按任意键继续---------------------"
get_char()
  {
  SAVEDSTTY=`stty -g`
  stty -echo
  stty cbreak
  dd if=/dev/tty bs=1 count=1 2> /dev/null
  stty -raw
  stty echo
  stty $SAVEDSTTY
  }
  echo ""
  echo "安装memcached,连接并发数1024,内存64M,按任意键继续......"
  char=`get_char`

tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make
make install
cd ../
echo "/usr/local/lib" >/etc/ld.so.conf.d/libevent-i386.conf
ldconfig
#默认安装在/usr/local/lib/

tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/web/memcached
make
make install
cd ../
#默认安装在/usr/local/bin/

#创建简单的memcache启动停止脚本(未有进程判断)
cat >>/memcached<#!/bin/bash

start(){
        echo "开始启动memcached ......"
        /web/memcached/bin/memcached -d -m 64 -u nobody -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
        echo "OK"
        }

stop() {
        echo "正在停止memcached ......"
        killall -9 memcached
        rm -f  /tmp/memcached.pid
        echo "OK"
        }

restart() {
        stop
        start
        }

case "" in
  start)
start
;;
  stop)
stop
;;
  restart)
stop
start
;;
*)
        echo $ "Usage: $0 {start|stop|restart}"
;;
esac
EOF
sed -i 's#""#"$1"#g' /memcached
chmod +x /memcached
/memcached start
cp -f memcache.php /home/wwwroot/htdocs/

sleep 1
echo "删除安装临时文件............."
rm -Rf libevent-1.4.13-stable
rm -Rf memcached-1.4.5


memcache.php内容为:

$mem = new Memcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key', "This is tell you: memcached rum success!", 0, 60);
$val = $mem->get('key');
echo $val;
?>

memcached安装教程

[不指定 2010/07/08 11:23 | by admin ]
一、memcached服务端的安装
1.安装前需要先安装libevent:
下载地址:
http://www.monkey.org/~provos/libevent/
安装 libevent-1.4.13-stable.tar.gz
#默认安装在/usr/local/lib/

2. memcached安装:
下载地址:
http://memcached.org/
安装 memcached-1.4.5.tar.gz
#默认安装在/usr/local/bin/

3.测试时候发现会出现以下错误信息:
/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
错误的原因是未在系统中注册Libevent. 解决方法如下:
vi /etc/ld.so.conf.d/libevent-i386.conf
输入:
/usr/local/lib/
最后不要忘了
ldconfig

4.CentOS Memcached运行
/web/memcached/bin/memcached -m 512 -u nobody -vv
会看到如下信息:
slab class   1: chunk size        80 perslab   13107
slab class   2: chunk size       104 perslab   10082
slab class   3: chunk size       136 perslab    7710
slab class   4: chunk size       176 perslab    5957
slab class   5: chunk size       224 perslab    4681
slab class   6: chunk size       280 perslab    3744
slab class   7: chunk size       352 perslab    2978
slab class   8: chunk size       440 perslab    2383
slab class   9: chunk size       552 perslab    1899
slab class  10: chunk size       696 perslab    1506
slab class  11: chunk size       872 perslab    1202
slab class  12: chunk size      1096 perslab     956
slab class  13: chunk size      1376 perslab     762
slab class  14: chunk size      1720 perslab     609
slab class  15: chunk size      2152 perslab     487
slab class  16: chunk size      2696 perslab     388
slab class  17: chunk size      3376 perslab     310
slab class  18: chunk size      4224 perslab     248
slab class  19: chunk size      5280 perslab     198
slab class  20: chunk size      6600 perslab     158
slab class  21: chunk size      8256 perslab     127
slab class  22: chunk size     10320 perslab     101
slab class  23: chunk size     12904 perslab      81
slab class  24: chunk size     16136 perslab      64
slab class  25: chunk size     20176 perslab      51
slab class  26: chunk size     25224 perslab      41
slab class  27: chunk size     31536 perslab      33
slab class  28: chunk size     39424 perslab      26
slab class  29: chunk size     49280 perslab      21
slab class  30: chunk size     61600 perslab      17
slab class  31: chunk size     77000 perslab      13
slab class  32: chunk size     96256 perslab      10
slab class  33: chunk size    120320 perslab       8
slab class  34: chunk size    150400 perslab       6
slab class  35: chunk size    188000 perslab       5
slab class  36: chunk size    235000 perslab       4
slab class  37: chunk size    293752 perslab       3
slab class  38: chunk size    367192 perslab       2
slab class  39: chunk size    458992 perslab       2
slab class  40: chunk size    573744 perslab       1
slab class  41: chunk size    717184 perslab       1
slab class  42: chunk size   1048576 perslab       1
<26 server listening (auto-negotiate)
<27 server listening (auto-negotiate)
<28 send buffer was 8388608, now 268435456
<29 send buffer was 8388608, now 268435456
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)

memcached运行正常。


二、memcached的基本设置:
1、启动Memcached的服务器端:
/web/memcached/bin/memcached -d -m 64 -u nobody -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB
-u是运行Memcache的用户
-l是监听的服务器IP地址,IP地址127.0.0.1
-p是设置Memcache监听的端口,默认为11211
-c选项是最大运行的并发连接数,默认是1024
-P是设置保存Memcache的pid文件,/tmp/memcached.pid,这个选项加不加无所谓

2、如果要结束memcached进程,执行:

kill `cat /tmp/memcached.pid`
或者
killall -9 /web/memcached/bin/memcached

也可以启动多个守护进程,不过端口不能重复。

3、重启apache,service httpd restart

memcached环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。
$mem = new Memcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key', "This is tell you: memcached rum success!", 0, 60);
$val = $mem->get('key');
echo $val;
?>


三、安装memcached的PHP扩展

1、在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。
2、安装PHP的memcache扩展

tar vxzf memcache-2.2.5.tgz

我的php安装在/web/php
确保编译参数为以下:
/web/php/bin/phpize
./configure --with-php-config=/web/php/bin/php-config


3、安装完后会有类似这样的提示:

Installing shared extensions: /web/php/lib/php/extensions/no-debug-zts-20060613/

4、把php.ini中的extension_dir = "./"修改为

extension_dir = "/web/php/lib/php/extensions/no-debug-zts-20060613/"

5、添加一行来载入memcache扩展:extension=memcache.so

Tags: ,


方法一:还未安装php程序时

进入官方下载:http://curl.haxx.se/download.html

wget http://curl.haxx.se/download/curl-7.21.0.tar.gz
tar zxvf curl-7.21.0.tar.gz
cd curl-7.21.0
./configure
make
make install

安装php时,只要打开./configure --with-curl
就可以了。


方法二:已安装好php程序,想要添加php的curl扩展

先在线安装
yum install curl curl-devel

进入php的源码目录,如我用的是php-5.2.13.tar.gz
而我装好的php程序在/web/php目录,操作如下:

tar zxvf php-5.2.13.tar.gz
cd php-5.2.13
cd ext/curl
/web/php/bin/phpize
./configure --with-curl=DIR --with-php-config=/web/php/bin/php-config
make

编译结束会有这样一句:
Libraries have been installed in:
   /soft/php-5.2.13/ext/curl/modules

而正常在装过其他php扩展后会有这样的目录
/web/php/lib/php/extensions/no-de-zts-20060613

如没有/web/php/lib/php/extensions/目录可以自己创建
mkdir -p /web/php/lib/php/extensions/no-de-zts-20060613

cp modules/curl.so /web/php/lib/php/extensions/no-de-zts-20060613
vi /etc/php.ini
找到

extension_dir =
确保它为
extension_dir = "/web/php/lib/php/extensions/no-debug-non-zts-20060613/"
然后在下面一行添加:
extension = "curl.so"

重启下httpd或nginx即可
Tags: , ,
分页: 8/13 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]