MySQL同步故障:" Slave_SQL_Running:No" 两种解决办法
[
2010/07/16 12:35 | by xiaoyuwxz ]
2010/07/16 12:35 | by xiaoyuwxz ]
在配置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的写操作!
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 ]
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
配置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环境配置方法
[
2010/07/09 13:31 | by xiaoyuwxz ]
2010/07/09 13:31 | by xiaoyuwxz ]
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下的环境配置的文章,这里就不再啰嗦了。
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下的环境配置的文章,这里就不再啰嗦了。
memcached服务端安装脚本
[
2010/07/08 11:31 | by xiaoyuwxz ]
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;
?>
#!/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<
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;
?>





