2 同步的建立

2.1 主服务器上的更改

vi /etc/my.cnf

log-bin #启动支持replication的二进制日志

binlog-do-db=cacti #指出要备份的数据库名称

server-id=1 #指出此数据库为主数据库

binlog-ignore-db=mysql #不备份mysql数据库

注意:如果想做复杂的结构:比如说A备份到B,B再备份到C,那么B除了打开log-bin,还要打开log-slave-updates

2.2 从服务器上的配置更改

vi /etc/my.cnf

server-id=2

master-host=主机

master-user=用户名

master-password=密码

master-port=端口

replicate-do-db=需要复制的数据名

replicate-ignore-db=需要复制的数据库名

2.3 在主数据库上建立同步用户。

grant replication slave on *.* to qxt@"%" identified by "qxt";

grant replication client,reload,super on *.* to qxt@"%"

flush privileges;

#修改权限后需要刷新才能生效

2.4 利用热备份将本地数据库拷贝到从数据库上

2.4.1 数据库的导出

mysqldump -u root -p cacti > /root/cacti.sql

#mysqldump将cacti数据库的所有数据导出

scp /root/cacti.sql IP:/root

#将主数据库文件拷贝到从数据库所在的机器上

并在上面执行

mysql -u root -p cacti < /root/cacti.tzt

#装载数据库

2.5 锁住主数据库保证备份时没有数据进入主库干扰备份

flush tables with read lock;

停止主服务器上的mysql服务

mysqladmin -u root shutdown

注意:如果表的类型只是mylsam,可以不停止mysql数据库,但复制过程中要锁住,如果表类型是InnoDB则必须停止主数据库。查看)(show table status from cacti;)

2.6 查看主库状态

show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000008 | 59170349 | | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

2.7 启动复制过程

start slave;

2.8 解锁

unlock tables;


相关内容