mysql主从同步
mysql主从同步
1.1 mysql主从同步 工作原理
1.2 部署mysql主从同步
1.2.1 准备工作: 确保数据相同 从库必须要有主库上的数据。
1.2.1 配置mysql主从同步
1.2.1.1 配置主库 192.168.4.51
]# vim /etc/my.cnf [mysqld] server_id=51 log-bin=master51 :wq ]# systemctl restart mysqld ]# mysql -uroot -p密码 mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A"; mysql> show master status; 1.2.1.2 配置从库 192.168.4.52 ]# vim /etc/my.cnf [mysqld] server_id=52 :wq ]# systemctl restart mysqld ]# mysql -uroot -p密码 mysql> change master to master_host="192.168.4.51",master_user="repluser",master_password="123qqq...AA",master_log_file="master51.000001",master_log_pos=441; mysql> start slave; mysql> show slave status\G; Master_Host: 192.168.4.51 Slave_IO_Running: Yes Slave_SQL_Running: Yes mysql> system cat /var/lib/mysql/master.info
1.2.1.3 测试主从同步配置
1 在主库51上添加访问数据的连接用户
]# mysql -uroot -p密码 mysql> create database db6; mysql> grant all on db6.* to yaya@"%" identified by "123qqq...A"
;
2 客户端50 连接主库51 存储数据
]# mysql -h192.168.4.51 -uyaya -p123qqq...A mysql> use db6; mysql> create table t1(id int); mysql> insert into t1 values(11),(99),(88)
;
3 从库52管理员本机登陆查看 , 有主库的数据
]# mysql -uroot -p密码 mysql> select * from db6.a;
1.4 把从库还原 为独立的数据库服务器。
[root@mysql52 mysql]# cd /var/lib/mysql [root@mysql52 mysql]# rm -rf master.info [root@mysql52 mysql]# rm -rf relay-log.info [root@mysql52 mysql]# rm -rf mysql52-relay-bin.00000* [root@mysql52 mysql]# rm -rf mysql52-relay-bin.index [root@mysql52 mysql]# systemctl restart mysqld [root@mysql52 mysql]# mysql -uroot -p密码 mysql> show slave status\G;
1.5 mysql主从同步常用配置项
1.5.1 写在主库/etc/my.cnf文件里的常用配置(对所有的从库有效)
]# vim /etc/my.cnf [mysqld] #binlog_do_db=gamedb 仅允许从库同步的库 binlog_ignore_db=bbsdb 不允许从库同步的库 :wq ]# systemctl restart mysqld 1.5.2 写在从库/etc/my.cnf文件里的常用配置(只对从库本机有效) ]# vim /etc/my.cnf log_slave_updates relay_log=中继日志文件名 #replicate_do_db=库名 //仅同步的库 replicate_ignore_db=库名 //只不同步的库 :wq ]# systemctl restart mysqld
1.6.3 配置mysql主从同步 主从从
51 52 53
主 从 从
配置从库53 仅同步主库 52 teadb 库数据
53 :
]# vim /etc/my.cnf [mysqld] replicate_do_db=teadb :wq ]# systemctl restart mysqld ]# mysql -uroot -p密码 mysql> show slave status\G; Replicate_Do_DB: teadb
配置主库51 只不允许 从库52 同步本机的 gamedb 库数据
]# vim /etc/my.cnf [mysqld] binlog_ignore_db=gamedb :wq ]# systemctl restart mysqld ]# mysql -uroot -p密码 mysql> show master status\G Binlog_Ignore_DB:gamedb
主从或主从从配置过程中可能出现的问题
一、数据库没有授权
对于mysql数据库没有授权,只需要用一条命令就可以了。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
指点ip:%代表所有Ip,此处也可以输入Ip来指定Ip
输入后使修改生效还需要下面的语句
mysql>FLUSH PRIVILEGES;
二、服务器防火墙没有开放3306端口
centos 有两种防火墙 FirewallD和iptables防火墙
centos7 使用的是FirewallD防火墙。
FirewallD 是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
1.FirewallD 使用区域和服务而不是链式规则。
2.它动态管理规则集,允许更新规则而不破坏现有会话和连接。
FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。
1.FirewallD防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义:
–zone #作用域
–add-port=3306/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙
systemctl restart firewalld.service
2.iptables 开发3306端口
/sbin/iptables -I INPUT -p tcp -dport 3306 -j ACCEPT /etc/rc.d/init.d/iptables save4000
- 点赞
- 收藏
- 分享
- 文章举报
- MySQL数据读写分离
- mysql分钟差比较
- MySQL之COUNT(*)效率
- MySQL 之union all 与 order by 同时出现问题
- mysql索引
- mysql连接超时
- pyspark 使用jdbc 连接mysql 数据库报错 Access denied for user 'root'@'localhost'
- MySQL在Windows10下的安装
- MySQL的日期格式化
- 如何启动/停止/重启MySQL
- mysql主从同步
- yum安装指定版本的mysql
- Mysql读写分离——主从数据库+Atlas
- mysql基础
- MYSQL约束
- mysql workbench update error code:1175
- mysql show status详解
- mysql5.7.25msi(win10安装教程)
- mysql5.7修改密码及注意事项
- mysql无法启动