目的:主服务器主要负责数据更新,从服务器数据实时同步主服务器数据提供查询功能,减轻主服务器负担.
主服务设置:
建立账户赋予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 #1到232–1之间的一个正整数值
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 #1到232–1之间的一个正整数值但是要不同于 其他的的服务器
启动从服务器 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在这两个值在实际过程中是不需要的,