当前位置:首页> PHP教程> PHP&MYSQL
关键字
文章内容
mysql主从/双机备份
 
 
修改时间:[2011/05/24 00:13]    阅读次数:[944]    发表者:[起缘]
 
花了半天时间研究了下下MYSQL的备份实现,发现其是在MY.CNF(MY.INI)配置文件中作的设置,直接设置服务器唯一性ID号加上其它的附加设置,则可作为一台MASTER,而在SLAVE机上,也只需要在配置文件中设置一下连接MASTER所需的参数即可,如果在MASTER里也加上连到SLAVE机的参数,则就是双向备份了~~不过,这些连接参数中用到的账号需要注意权限的设置,否则会搞半天没反就急死你迪。。。

我在WIN上和LINUX上各装了MYSQL5,下面是它们的配置:
WIN(172.22.33.33)下的MASTER(由于我改了端口3327所以下面多加了个端口方面的特殊处理了)的配置(my.ini):(**一定要在mysqld配置段中配置,不象PHP,APACHE可以随便找个方便的地方配的,注意哈!!)
[mysqld]
#master 设置
server-id=1
log-bin=c:/masterlog
binlog-do-db=db5

#实现双机备份段,给MASTER同时加上SLAVE段,可选哈,如果不选,那就是WIN到LIN的主从备份
master-host=172.22.1.37
master-user=backup2
master-password=backup2
master-port=3306
master-connect-retry=60
replicate-do-db=db5
#---------------------------------------------

数据库中加一个账号:
GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* TO backup@'172.22.1.37' IDENTIFIED by 'backup';
这个权限表示,这个backup账号只能由从备份机172.22.1.37访问只能用来进行备份操作


LINUX(172.22.1.37)下的SLAVE机的配置(把安装目录里找到的任意一个*.cnf拷到/etc/my.cnf下进行修改):
server-id=2
#如果不需要双向备份下面两行可以不要
#否则还要加一个数据库用户账号
/*

GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* TO backup2@'172.22.33.33' IDENTIFIED by 'backup2';

*/
log-bin=./masterlog
binlog-do-db=db5

#---------------------------------------

master-host=172.22.33.33
master-user=backup
master-password=backup
master-port=3327
master-connect-retry=60
replicate-do-db=db5

由于只是大概的弄了一下,特别是在数据库用户方面没有作仔细试验:),可能会有所不太准确的地方,还有就是,上面测试用到的数据库一定要是已经建立好并且结构相同的,两台机子都重启后会进行检查,如果出现找不到或者检查到结构不同,会报错,最好就是在创建空数据库时或初始时安装两个一样的数据库后就建立好关系,对于不同版本的MYSQL,官方说明也可以同步,但想一想,把MYSQL5 的数据备份到4中去丢失5的特性也没什么意义吧。。