MySql数据库同步复制(初步)
[
2006/12/08 09:45 | by 小施 ]
2006/12/08 09:45 | by 小施 ]
该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(windows下为my.ini,Unix/Linux下为my.cnf)
1、实施环境:
操作系统:2台Windows Server 2003
mysql:mysql-essential-4.1.21-win32.msi
Master ip:192.168.0.41
Slave ip:192.168.0.161
2、配置方法
主从模式[Master->Slave]:A->B
=====step 1:分别在Master、Slave上配置同步DB及Account=====
Step A: Master上配置
1.增加一个用户最为同步的用户帐号:
2.增加一个数据库作为同步数据库:
Step B:Slave上配置
1.增加一个用户最为同步的用户帐号:
2.增加一个数据库作为同步数据库:
====step 2:配置Master、Slave参数======
主从模式:A->B即 Master为master ,Slave为slave
1、修改Master 中mysql的my.cnf文件。在mysqld配置项中加入下面配置:
注
Log-bin #设置需要记录log 可以设置log-bin="D:/mysql4/log/mlog" 设置日志文件的目录[其中mlog是日志文件的名称,mysql将建立不同扩展名,文件名为mlog的几个日志文件]。
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(windows下为my.ini,Unix/Linux下为my.cnf)
1、实施环境:
操作系统:2台Windows Server 2003
mysql:mysql-essential-4.1.21-win32.msi
Master ip:192.168.0.41
Slave ip:192.168.0.161
2、配置方法
主从模式[Master->Slave]:A->B
=====step 1:分别在Master、Slave上配置同步DB及Account=====
Step A: Master上配置
1.增加一个用户最为同步的用户帐号:
GRANT FILE ON *.* TO backup@''''192.168.0.161'''' IDENTIFIED BY ‘rsync.mysql’;
2.增加一个数据库作为同步数据库:
create database backup;
Step B:Slave上配置
1.增加一个用户最为同步的用户帐号:
GRANT FILE ON *.* TO backup@''''192.168.0.41'''' IDENTIFIED BY ‘1234’;
2.增加一个数据库作为同步数据库:
create database backup;
====step 2:配置Master、Slave参数======
主从模式:A->B即 Master为master ,Slave为slave
1、修改Master 中mysql的my.cnf文件。在mysqld配置项中加入下面配置:
server-id=1
log-bin
binlog-do-db=backup
log-bin
binlog-do-db=backup
注
Log-bin #设置需要记录log 可以设置log-bin="D:/mysql4/log/mlog" 设置日志文件的目录[其中mlog是日志文件的名称,mysql将建立不同扩展名,文件名为mlog的几个日志文件]。
mysql官方管理工具的下載頁面
[
2006/12/01 09:41 | by 小施 ]
2006/12/01 09:41 | by 小施 ]
如何用php写一个mysql自动备份的功能?(兩個代碼參考,未測試。)
[
2006/12/01 09:37 | by 小施 ]
2006/12/01 09:37 | by 小施 ]
MySQL数据自动备份并且ftp的shell文件(未测试哦)
[
2006/12/01 09:33 | by 小施 ]
2006/12/01 09:33 | by 小施 ]
MySQLbackup.sh 是备份整个MySQL数据库的数据
DBbackup.sh 是备份单个数据库的数据
#!/bin/bash
############### MySQL Backup & FTP ################
#Power By SBear 2004-01-20 2:10
#E-mail:sbear_ji@126.com
#http://www.1842.net
#http://www.CnLinux.net
#1. mkdir /home/backup
#2. chmod 700 MySQLbackup.sh
#3. vi /etc/crontab , 30 03 * * * root /home/backup/MySQLbackup.sh
#everyday 03:30 the MySQLbackup.sh will work
#System Setup
host=192.168.0.3 #ftp host
UserName=ftp #ftp user name
Passwd=ftp #fto user password
backup_path=/home/backup #set saved backup path
file=mysql-$(date +%Y%m%d).tar.gz
backupCWD=/usr/local/mysql/var #set backup file,the mysql database
#stop mysql database server
/usr/bin/killall mysqld
#/etc/rc.c/init.d/mysqld stop
sleep 5s #stop 5 second
#file tar
tar -czf $backup_path/$file $backupCWD
sleep 10s
#start mysql database server
/usr/local/mysql/bin/mysqld_safe --user=mysql & #set your mysqld path
#/etc/rc.d/init.d/mysqld start
cd $backup_path
sleep 1s
#file ftp
ftp -i -n <<!
open $host
user $UserName $Passwd
put $file
bye
!
sleep 10s
rm -rf $backup_path/$file
############### MySQL Backup & FTP ################
#Power By SBear 2004-01-20 2:10
#E-mail:sbear_ji@126.com
#http://www.1842.net
#http://www.CnLinux.net
#1. mkdir /home/backup
#2. chmod 700 MySQLbackup.sh
#3. vi /etc/crontab , 30 03 * * * root /home/backup/MySQLbackup.sh
#everyday 03:30 the MySQLbackup.sh will work
#System Setup
host=192.168.0.3 #ftp host
UserName=ftp #ftp user name
Passwd=ftp #fto user password
backup_path=/home/backup #set saved backup path
file=mysql-$(date +%Y%m%d).tar.gz
backupCWD=/usr/local/mysql/var #set backup file,the mysql database
#stop mysql database server
/usr/bin/killall mysqld
#/etc/rc.c/init.d/mysqld stop
sleep 5s #stop 5 second
#file tar
tar -czf $backup_path/$file $backupCWD
sleep 10s
#start mysql database server
/usr/local/mysql/bin/mysqld_safe --user=mysql & #set your mysqld path
#/etc/rc.d/init.d/mysqld start
cd $backup_path
sleep 1s
#file ftp
ftp -i -n <<!
open $host
user $UserName $Passwd
put $file
bye
!
sleep 10s
rm -rf $backup_path/$file
DBbackup.sh 是备份单个数据库的数据
在win2003下MySQL数据库每天自动备份
[
2006/12/01 09:28 | by 小施 ]
2006/12/01 09:28 | by 小施 ]
终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 7 天前的备份文件. 分享如下.
1. 环境: windows server 2003 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .
4. D:/php 下建立文件 mysql_backup.php:
<?php
/*/////////////////////////
#FileName: mysql_backup.php
#Author: Austin
#Website: http://shi.i0595.net
////////////////////////*/
//保存目錄,路徑要用反斜槓。
$store_folder = 'd:dbbackup';
//用戶名和密碼
//該帳號須有操作[所有]的數據庫及FILE的權限
//否則有些數據庫不能備份
$db_username = "这里输入数据库帐号";
$db_password = "这里输入密码";
$time=time();
$nowdir = "$store_folder".date("Ymd",$time)."";
if(file_exists("$nowdir.rar")) die("File exists.rn");
@mkdir($nowdir);
mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();
$command = '';
while($result=mysql_fetch_array($query)){
$command .= 'D:Mysqlbinmysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir$result[Database].sql rn";
$command .= "echo 已經導出數據庫: `$result[Database]`... rn";
}
$command .= "echo 開始壓縮...rn";
$command .= dirname(__FILE__)."WinRARRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar" "$nowdir" rn";
$command .= "echo 搞定 ^_^rn";
$command .= "del mysqldumping_temp.batrn";
$fp = fopen('mysqldumping_temp.bat','w');
fwrite($fp,$command);
fclose($fp);
//刪除 7 天前的文件
@unlink("$store_folder".date("Ymd",$time-86400*7).".rar")
?>
5. D:/php 下建立文件 mysql_backup.bat:
@echo off
cls
title 備份腳本
color 0b
echo 自動備份腳本開始,請不要手動關閉本窗口。本窗口將在備份完成後自動關閉。
D:\Php\PHP.exe mysql_backup.php
if exist mysqldumping_temp.bat call mysqldumping_temp.bat
6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.
7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,可以把时间定在了早上 8 点整.
1. 环境: windows server 2003 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .
4. D:/php 下建立文件 mysql_backup.php:
<?php
/*/////////////////////////
#FileName: mysql_backup.php
#Author: Austin
#Website: http://shi.i0595.net
////////////////////////*/
//保存目錄,路徑要用反斜槓。
$store_folder = 'd:dbbackup';
//用戶名和密碼
//該帳號須有操作[所有]的數據庫及FILE的權限
//否則有些數據庫不能備份
$db_username = "这里输入数据库帐号";
$db_password = "这里输入密码";
$time=time();
$nowdir = "$store_folder".date("Ymd",$time)."";
if(file_exists("$nowdir.rar")) die("File exists.rn");
@mkdir($nowdir);
mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();
$command = '';
while($result=mysql_fetch_array($query)){
$command .= 'D:Mysqlbinmysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir$result[Database].sql rn";
$command .= "echo 已經導出數據庫: `$result[Database]`... rn";
}
$command .= "echo 開始壓縮...rn";
$command .= dirname(__FILE__)."WinRARRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar" "$nowdir" rn";
$command .= "echo 搞定 ^_^rn";
$command .= "del mysqldumping_temp.batrn";
$fp = fopen('mysqldumping_temp.bat','w');
fwrite($fp,$command);
fclose($fp);
//刪除 7 天前的文件
@unlink("$store_folder".date("Ymd",$time-86400*7).".rar")
?>
5. D:/php 下建立文件 mysql_backup.bat:
@echo off
cls
title 備份腳本
color 0b
echo 自動備份腳本開始,請不要手動關閉本窗口。本窗口將在備份完成後自動關閉。
D:\Php\PHP.exe mysql_backup.php
if exist mysqldumping_temp.bat call mysqldumping_temp.bat
6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.
7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,可以把时间定在了早上 8 点整.






