mysql复制的优点:
1.主服务器出现问题,快速切换到从服务器提供服务。
2.在从服务器执行查询操作,降低主服务器的访问压力。
3.从服务器执行备份,避免备份期间影响主服务器的服务。
安装配置
1,确保主从服务器安装相同版本的数据库。
2,主服务器,设置复制使用帐号,授权REPLICATION SLAVE权限。
例如: mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101' IDENTIFIED BY '123456';
3,修改主服务器的配置文件my.cnf,开启BINLOG,设置server-id的值,修改后需要重启数据库服务才生效。
My.cnf修改:
[mysqld]
log-bin = /home/mysql/log/mysql-bin.log
server-id = 1
4,主服务器设置读锁定有效,确保没有数据操作,获得一个一致的快照:
mysql>flush tables with read rock;
5,得到主服务器上当前二进制日志名和偏移量值,为了在从数据库启动后,从这个点开始进行数据恢复。
mysql> show master status;
6,备份主库,直接操作系统下cp全部数据文件,也可mysqldump导出数据或者ibbackup工具数据备份。cp最快
$tar -cvf data.tar data
7,恢复主库的写操作,剩下的就是在从服务器执行:
mysql>unlock tables;
8, 解压主库的备份文件到从库。
9,修改从数据库的配置文件my.cnf,增加server-id参数。server-id唯一,与主库不同。
my.cnf修改
[mysqld]
server-id = 2
10, 从服务器,使用--skip-slave-start选项启动从数据库,这样不会立即启动从数据库服务上的复制进程,方便对从数据库服务进行进一步配置:
$./bin/mysqld_safe --skip-slave-start &
11,对从服务器做相应配置,制定复制使用的用户,主数据库服务器的ip,端口级开始执行复制的日志文件和位置等
mysql> CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password'.
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
12,启动从服务器上的slave线程;
mysql> start slave;
13.slave上执行show processlist命令查看;
mysql>show processlist \G
14.测试复制服务的正确性,主库更新数据操作,观察从库是否同步。
done ,到此主从备份复制完成。。。