mysql主从搭建–高可用
mysql官网参考文档(中文—–需要先登录才能下载)
https://www.mysql.com/why-mysql/white-papers/wp-mysql-5-5-replication-zh/
准备环境
- centos6.7
- mysql5.1.73
主节点 IP:172.16.190.131
从节点 IP:172.16.190.132
配置master 数据库
修改主从机子的 配置文件 vi /etc/my.cfg
从启master mysql 服务:# service mysqld restart
再登录mysql
创建数据库同步用户 并赋予权限
grant replication slave, replication client on . to ‘repl’@’172.16.190.132’ identified by ‘123456’;
刷新授权信息表
flush privileges;
mysql> show master status;
创建 edu 库、表,并写入一定量的数据,用于模拟现有的业务系统数据库
create database if not exists edu default charset utf8 collate utf8_general_ci;
use edu;
DROP TABLE IF EXISTS edu_user
; CREATE TABLE edu_user
(
Id
int(11) NOT NULL AUTO_INCREMENT,
userName
varchar(255) NOT NULL DEFAULT ” COMMENT ‘用户名’, pwd
varchar(255) NOT NULL DEFAULT ” COMMENT ‘密码’,
PRIMARY KEY (Id
)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT=’用户信息表’;
INSERT INTO edu_user
VALUES (1,’test’,’123456’);
为保证 Master 和 Slave 的数据一致,让从数据库还原主库的备份。
备份主库:
mysql> unlock tables;
将 Master 上备份的数据远程传送到 Slave 上
scp /tmp/edu.sql root@172.16.190.132:/tmp/edu.sql
配置slave 数据库
先还原主机的备份数据 由于edu库还不存在先创建edu
mysql -uroot -pmysql -e ‘create database edu’
vi /etc/my.cnf
重启mysqld service 。登陆mysql 并 设置master信息
change master to master_host=’172.16.190.131’,master_user=’repl’,master_password=’123456’,master_port=3306,
master_log_file=’black-bin.000003’,master_log_pos=106,master_connect_retry=30;
master_host ##Master的IP地址
master_user ##用于同步数据的用户(在Master中授权的用户)
master_password ##同步数据用户的密码
master_port ##master数据库服务的端口
master_log_file ##指定Slave从哪个日志文件开始读取复制文件(可在Master上使用show master status查看到日志文件名)
master_log_pos ##从哪个POSITION号开始读
master_connect_retry #当重新建立主从连接时,如果连接建立失败,间隔多久后重试,单位为秒,默认设置为60秒,同步延迟调优参数。
查看从机同步状态
show slave status\G;
开启主从同步
mysql> start slave;
再次查看同步状态
show slave status\G;
在master中添加记录