mysql热备
1 查看mysql版本,保证主库低于等于从库
2 主库配置:
A 需要打开支持日志功能:log-bin=mysql-bin
B 提供server-id:server-id=1
C 重启mysql,进入后,分配复制从库的帐号
GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'backip' IDENTIFIED BY 'repuser';
D show master status;能看到二进制日志文件目前的Position
E mysqldump --all-databases --single-transaction --master-data > all
把数据库内容备份出来,加上master-data参数是为了在备份出来的文件中看到当前备份的数据对应哪个日志文件的哪个position
3 配置从服务器
A server-id=2 //设置数据库 id 默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
master-host=masterip //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=repuser //同步数据库的用户
master-password=repuser //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
B 启动从服务器,并先停止slave:slave stop;
C 导入主库数据
D mysql> CHANGE MASTER TO
-> MASTER_HOST='masterip', //主服务器的IP地址
-> MASTER_USER='repuser', //同步数据库的用户
-> MASTER_PASSWORD='repuser', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置
其中日志文件名和开始位置,可以从all这个文件的头几行查到
E slave start;结束
查询mysql操作日志
1 show binary logs;可以看到每个binlog中的position
2 mysqlbinlog binlog_file --no-defaults --start-datetime='2009-12-15 00:00:00' |more