实现mysql读写分离

mysql读写分离


应用:web服务器优化

需要工具:
两台mysql
主master:10.10.107.121
从slave:10.10.107.84


一、主数据库配置


1.关闭防火墙和安全模式


systemctl stop firewalld

实现mysql读写分离_第1张图片

setenforce 0

在这里插入图片描述


2.Mariadb(mariadb:和mysql一样是一个关系型数据库)

  yum install mariadb-server

在前面我们已经装过
要先启动mariadb
实现mysql读写分离_第2张图片


3.配置生产环境


使用yum安装,默认是宽松模式,任何账号没有密码都可以登陆, 配置生产环境

Mysql_secure_installation

实现mysql读写分离_第3张图片
实现mysql读写分离_第4张图片
实现mysql读写分离_第5张图片


4.重启服务


在这里插入图片描述


5.创建库和表


创建库
实现mysql读写分离_第6张图片


创建表
实现mysql读写分离_第7张图片


6.导出表结构传给从机并导入(主库和从库的库表结构一模一样,直接从主库导出,创给从库)


① 导出数据


先退出数据库 执行

mysqldump  -uroot  -p demo>/opt/demo.sql

实现mysql读写分离_第8张图片


② 传送给从机


格式:

 scp /opt/demo.sql  [email protected]:/opt/

实现mysql读写分离_第9张图片


③ 操作从机


创建一个demo库 然后退出数据库
在这里插入图片描述
导入表

mysql  -uroot  -p demo

实现mysql读写分离_第10张图片
实现mysql读写分离_第11张图片
表结构一样
实现mysql读写分离_第12张图片


7.在主机配置权限 授权一个账户可以连接主机


①授权格式:salve从库,with后面是条件

 grant replication slave on *.* to 'root'@'%' identified by '123456' with grant option;

在这里插入图片描述
②刷新授权刷新权限表

Flush privileges

实现mysql读写分离_第13张图片


8.修改主机的配置文件


①配置文件路径

/etc/my.cnf

在第三行后面一行添加
实现mysql读写分离_第14张图片
|

server-id=1 设置服务器id 1代表主服务器
log_bin=mysql-bin? 启动二进制日志
binlog-do-db=数据库名字 需要同步的数据库名字
binlog-ignore-db=mysql 不同步系统库

②保存退出重启服务
在这里插入图片描述


9.查看状态


进入数据库查看主机的日志信息

Show master status

实现mysql读写分离_第15张图片


二、从数据库操作


1.配置生产环境


Mysql_secure_installation

步骤同上


2.查看下库和表是否已经导入


实现mysql读写分离_第16张图片


3.修改从库配置文件


Server-id=2 设置服务器id 2代表从服务器
log_bin=mysql-bin? 启动二进制日志
Binlog-do-db=数据库名字 需要同步的数据库名字
Binlog-ignore-db=mysql 不同步系统库

实现mysql读写分离_第17张图片


4.保存退出重启服务


在这里插入图片描述


5.进入数据库


执行

change master to master_host=’ip’,master_user=’root’,master_password=’’,master_log_file=’日志文件的名字’,master_log_pos=大小;

6.slave执行开始备份:


执行备份

Slave start

查看从机的状态 两个yes就成功
实现mysql读写分离_第18张图片

如果配到这一步没成功,服务重新启动再进来,或者把备份关掉,退出,再进来重新启动备份


7.测试:


在主库中插入数据 到从库中查询 如果数据一致,代表配置成功

主库插入数据
实现mysql读写分离_第19张图片
丛机查看

show slave status \G

实现mysql读写分离_第20张图片


你可能感兴趣的:(Linux)