主服务器: 192.168.1.222

从服务器: 192.168.1.205

主服务器:

backup数据库为需要复制的数据库,设置 replicate@192.168.1.205 有访问权限:

grant file on *.* to ‘replicate’@'192.168.1.205′ IDENTIFIED BY ‘password’;

my.cnf中设置:

mysqld

server-id=1

    log-bin
    sql-bin-update-same
    binlog-do-db=backup //只做backup数据库日志

导出backup数据库重起主服务器运行

mysql>show master status;获得LOG_FILE和LOG_FILE_POS 从服务器: 设置my.cnf:

mysqld

server-id=2;不能与master的相同,如果有多台slave,此值必须唯一,如果不填写,slava默认为2

     master-host=192.168.1.222
     master-user=replicate
     master-password=password
     master-port=3306
     master-connect-retry=60
     replicate-do-db=backup;数据库名

用下述命令启动从mysqld

mysqld –skip-slave

登陆从mysql,导入数据库然后检查数据是否进入,然后运行

mysql> CHANGE MASTER TO

   -> MASTER_HOST='192.168.1.222',
   -> MASTER_USER='replicate',
   -> MASTER_PASSWORD='password',
   -> MASTER_LOG_FILE='www-bin.001',  // show master status看到的file
   ->  MASTER_LOG_POS=73;  //show master status看到的pos

mysql>slave start;

如果看见数据库记录和主服务器不符,就运行

mysql>slave stop;

删除数据库,重新导入,然后再启动slave

测试成功后,启动从服务器就不需要再使用–skip-slave参数

几个命令:

show master status;在主服务器上看状态

show slave status;在从服务器上看状态

change master …;在从服务器上更改主服务器信息,如果服务器更改了信息,则更改my.cnf无效,因为已经把信息写入master.info文件中,必须使用此命令更改

FLUSH PRIVILEGES;不重起服务器,使权限马上更新

如果你想使用复制数据文件的方式来备份数据库,只要在从服务器上的mysql命令行先键入slave stop;然后复制数据库文件,复制好了,再 在mysql命令行键入slave start;启动从服务器,这样就即备份了数据有保证了数据完整性,而且整个过程中主服务器的mysql无需停止。