在配置mysql主从同步的时候遇到了查看从服务器状态显示为:
Slave_SQL_Running:No

搜索通过以下第一种方法解决.主服务器已有数据,而从服务器因为当时配置的数据库版本不一致导致没法同步,后安装同一数据库版本后,运行状态为Slave_SQL_Running:No

以下为转贴:

故障状态:
进入slave服务器,运行:

mysql> show slave status\G

         .......
             Relay_Log_File: localhost-relay-bin.000535
              Relay_Log_Pos: 21795072
      Relay_Master_Log_File: localhost-bin.000094
           Slave_IO_Running: Yes
          Slave_SQL_Running: No
            Replicate_Do_DB:
        Replicate_Ignore_DB:
      ......

解决办法一、

Slave_SQL_Running: No
1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:
解决办法:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;



解决办法二、

首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值

进入master

mysql> show master status;
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000094 | 33622483 |              |                  |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)



然后到slave服务器上执行手动同步:

mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3306,
> master_log_file=localhost-bin.000094',
> master_log_pos=33622483 ;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)



mysql> show slave status\G
*************************** 1. row ***************************
........
            Master_Log_File: localhost-bin.000094
        Read_Master_Log_Pos: 33768775
             Relay_Log_File: localhost-relay-bin.000537
              Relay_Log_Pos: 1094034
      Relay_Master_Log_File: localhost-bin.000094
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:

手动同步需要停止master的写操作!

mysql主从同步配置(笔记)

[不指定 2010/07/16 12:31 | by xiaoyuwxz ]
特别说明:
配置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
win2008中的iis7下的几种aps+php环境配置方法

IIS7.5和IIS6.0在使用上有很大的灵活性,现就几种方法作简要说明

一、使用IIS7.5的fastcgi
这是建议使用的一种,IIS使用FsatCGISettings及处理程序映射中添加模块映射。
即在FsatCGISettings添加应用 php-cgi.exe,并在EnviornmemtVafiables里添加连接等变量。
在处理应用程序中添加模块FastCgiModule的映射。
在为站点添加模块FastCgiModule的映射后,相关配置会写入web.config
php使用非线程安全版本
这是在IIS7+FastCGI下最常用的方法,此配置下,无法支持zend,只能安装微软的wincache来加速缓存优化。

二、使用与IIS6.0下相同的方法
即使用ISAIP方式来加载,
具体方法为:在处理程序映射中添加模块FastCgiModule的映射,文件为php5isapi.dll,这种方式下要先为php5isapi.dll注册启用它,具体为打开ISAPI和CGI限制,添加php5isapi.dll并允许扩展路径,这和IIS6.0下的应用程序扩展中添加是一样的道理。
在此方法下使用的php的普通版本的php,而不是非线程安全的版本
这种方式下的php可以安装zend以及xcache等加速软件。


三、使用普通版本的php,同时使用fastcgi方式
处理方法类似第一种,使用php-cgi.exe来处理php,但php程序使用的是普通版本的,同样,这种方式下支持zend及xcache等加速软件


另:由于个人应用的特殊要求,IIS7.5下支持同时使用不同版本不同方式使用的php,如上述三种方式来配置php,又或者同时还使用不同版本的php,关键只要做到能正确读取相应的php.ini即可。
这是IIS6.0下所办不到的,IIS6.0下,除了不同时使用mysql等扩展,否则它是不能同时读取不同的php.ini来配置当前站点的。
曾经测试,在不同方式下运行网站安装discuz,都可以正常运行。

至于具体的配置教程可以网上搜索下IIS7和IIS6下的环境配置的文章,这里就不再啰嗦了。
Tags: , , , ,

memcached服务端安装脚本

[不指定 2010/07/08 11:31 | by xiaoyuwxz ]
自己写的一个简单的脚本,执行安装即可。转截请注明地址.

#!/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;
?>
分页: 2/21 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]