mysql集群--双机互备
来源:互联网 发布:歌颂 陈奕迅 知乎 编辑:程序博客网 时间:2024/05/19 18:37
以前感觉集群、读写分离,xxxx 都是狂拽牛逼吊炸天的东西。弄完之后发现其实都是很简单的,只要你感兴趣。
mysql安装参考 点击打开链接
两台机器:
mysql01:192.168.1.251
mysql02:192.168.1.252
注意,如果你是虚拟机复制模拟的,得改下mysql/data下的auto.cnf,两台机器的uuid不能相同。
服务器的的 selinux 都要 disable(修改/etc/selinux/config,将 SELINUX 改为 disabled)。
MySQL5.6 开始主从复制有两种方式:基于日志(binlog)、基于 GTID(全局事务标示符)。
主从复制(也称 A/B 复制)的原理
(1) Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件,这些记录叫做二进制日志事件(binary log events);
(2) Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);
(3) Slave 重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完
成数据在本地的存储,从而实现将改变反映到它自己的数据(数据重放)。
mysql01:
vi /etc/my.cnf
## 在 [mysqld] 中增加以下配置项
## 设置 server_id,一般设置为 IP
server_id=251
## 复制过滤:需要备份的数据库,输出 binlog#binlog-do-db=roncoo
## 复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
## 开启二进制日志功能,可以随便取,最好有含义
log-bin=mysql-master
## 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
## 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
## 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log 配置中继日志
relay_log=mysql-master-relay-bin
## log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1
lower_case_table_names=1
log_bin_trust_function_creators=true
启动/重启 Master 数据库服务,登录数据库,创建数据同步用户,并授予相应的权限
service mysql restart
mysql -uroot -p
##创建数据同步用户,并授予相应的权限
grant replication slave, replication client on *.* to 'repl'@'192.168.1.252' identified by '123456';;
Query OK, 0 rows affected (0.00 sec)
## 刷新授权表信息
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
## 查看 position 号,记下 position 号(从机上需要用到这个 position 号和现在的日志文件)
mysql> show master status;
mysql02:
vi /etc/my.cnf
## 设置 server_id,一般设置为 IP
server_id=252
## 复制过滤:需要备份的数据库,输出 binlog
#binlog-do-db=roncoo
##复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
## 开启二进制日志,以备 Slave 作为其它 Slave 的 Master 时使用
log-bin=mysql-slave
## 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size = 1M
## 主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
## 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log 配置中继日志
relay_log=mysql-slave-relay-bin
## log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
log_slave_updates=1
log_bin_trust_function_creators=true
lower_case_table_names=1
## 防止改变数据(除了特殊的线程)
## read_only=1
重启数据库 service mysql restart
添加相关参数
master:
change master to master_host='192.168.1.252', master_user='repl',master_password='123456', master_port=3306, master_log_file='xxxxxxx.000001',master_log_pos=xxxxx, master_connect_retry=30;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
slave:
change master to master_host='192.168.1.251', master_user='repl01',master_password='123456', master_port=3306, master_log_file='xxxxxxx.000001',master_log_pos=xxxxx, master_connect_retry=30;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
## 查看主从同步状态
mysql> show slave status\G;
可看到 Slave_IO_State 为空, Slave_IO_Running 和 Slave_SQL_Running 是 No,表明 Slave 还没有开始复制过程。
## 开启主从同步
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
## 再查看主从同步状态
mysql> show slave status\G;
主要看以下两个参数,这两个参数如果是 Yes 就表示主从同步正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
可查看 master 和 slave 上线程的状态。在 master 上,可以看到 slave 的 I/O 线程创建的连接:
mysql01: mysql> show processlist\G;
mysql02: mysql> show processlist\G;
完成
- mysql集群--双机互备
- mysql cluster双机集群
- mysql cluster双机集群
- mysql双机互备
- mysql 双机互备
- mysql双机互备
- mysql双机互备
- mysql双机热备+heartbeat集群+自动故障转移
- Linux下mysql双机集群配置教程
- Linux mysql cluster双机集群 -2
- Mysql的实时同步 - 双机互备
- MYSQL+heartbeat+mon双机互备
- MySQL双机互备配置说明
- MYSQL主从复制或双机互备
- Mysql的实时同步 - 双机互备
- Mysql的实时同步 - 双机互备.
- Centos 5.2+MYSQL+heartbeat双机互备
- Mysql的实时同步 - 双机互备
- 11期5月期刊自荐
- 用 TensorFlow 让你的机器人唱首原创给你听
- 专访阿里 iDST 语音组总监鄢志杰:智能语音交互从技术到产品,有哪些坑和细节要注意?
- WEB端HTML规范及模板
- 程序员面试金典——猫狗收容所
- mysql集群--双机互备
- Eloquent JavaScript 笔记 前言:这是个艰难的决定
- 更改Jenkins的主目录
- 阿拉伯数字转英文
- 【java】归并排序 逆序对数
- Java的特点
- mysql 定时器
- 12期 5月期刊自荐
- 解决C++与Java 使用Socket Float数据类型的正确互传