mysql 主从复制

来源:互联网 发布:工作计划软件 编辑:程序博客网 时间:2024/06/02 05:07

目的:主服务器主要负责数据更新,从服务器数据实时同步主服务器数据提供查询功能,减轻主服务器负担.

 

主服务设置: 

建立账户赋予REPLICATION SLAVE权利

GRANT REPLICATION SLAVE ON *.* TO 'username'@'%' IDENTIFIED BY 'password'

 

清空所有表和块写入语句

FLUSH TABLES WITH READ LOCK;

 

读取主服务器上当前的二进制日志名和偏移量值, 记录主服务器的二进制日志名和偏移量,后面需要在从服务中配置。

start show master status

 

停止主服务器
service mysql stop

 

进入主服务器的数据目录

cd /var/lib/mysql/

归档所有数据库文件

tar -cvf /tmp/mysql-snapshot.tar .

 

修改配置文件/etc/mysql/my.cnf ,以便启动二进制日志

server-id               = 1 #12321之间的一个正整数值
log_bin                 = /var/log/mysql/mysql-bin.log

 

启动主服务器 mysql 服务

service mysql start

 

从服务设置: 

 

停止从服务器
service mysql stop


复制主服务的器的归档文件到从服务器tmp目录下

/tmp/mysql-snapshot.tar

 

进入从服务器的数据目录

cd /var/lib/mysql/


复制解压缩主服务器归档文件

tar -xvf /tmp/mysql-snapshot.tar

 

修改配置文件/etc/mysql/my.cnf ,

server-id               = 2 #12321之间的一个正整数值但是要不同于 其他的的服务器
 

启动从服务器 mysql 服务

 

在从服务器重 配置主服务器信息,用实际值代替,MASTER_LOG_FILE MASTER_LOG_POS从之前 start show master status中结果获取

 

mysql> CHANGE MASTER TO

     -> MASTER_HOST='master_host_name',
     -> MASTER_USER='username',
     -> MASTER_PASSWORD='password',
     -> MASTER_LOG_FILE='recorded_log_file_name',
     -> MASTER_LOG_POS=recorded_log_position;

 

 

 

第一次配置中从服务器 MASTER_LOG_FILE MASTER_LOG_POS在这两个值在实际过程中是不需要的,

原创粉丝点击