mysql读写分离
应用:web服务器优化
需要工具:
两台mysql
主master:10.10.107.121
从slave:10.10.107.84
一、主数据库配置
1.关闭防火墙和安全模式
systemctl stop firewalld
setenforce 0
2.Mariadb(mariadb:和mysql一样是一个关系型数据库)
yum install mariadb-server
在前面我们已经装过
要先启动mariadb
3.配置生产环境
使用yum安装,默认是宽松模式,任何账号没有密码都可以登陆, 配置生产环境
Mysql_secure_installation
4.重启服务
5.创建库和表
创建库
创建表
6.导出表结构传给从机并导入(主库和从库的库表结构一模一样,直接从主库导出,创给从库)
① 导出数据
先退出数据库 执行
mysqldump -uroot -p demo>/opt/demo.sql
② 传送给从机
格式:
scp /opt/demo.sql root@10.10.107.121:/opt/
③ 操作从机
创建一个demo库 然后退出数据库
导入表
mysql -uroot -p demo</opt/demo.sql
表结构一样
7.在主机配置权限 授权一个账户可以连接主机
①授权格式:salve从库,with后面是条件
grant replication slave on *.* to 'root'@'%' identified by '123456' with grant option;
②刷新授权刷新权限表
Flush privileges
8.修改主机的配置文件
①配置文件路径
/etc/my.cnf
在第三行后面一行添加
|
server-id=1 | 设置服务器id 1代表主服务器 |
---|---|
log_bin=mysql-bin? | 启动二进制日志 |
binlog-do-db=数据库名字 | 需要同步的数据库名字 |
binlog-ignore-db=mysql | 不同步系统库 |
②保存退出重启服务
9.查看状态
进入数据库查看主机的日志信息
Show master status
二、从数据库操作
1.配置生产环境
Mysql_secure_installation
步骤同上
2.查看下库和表是否已经导入
3.修改从库配置文件
Server-id=2 | 设置服务器id 2代表从服务器 |
---|---|
log_bin=mysql-bin? | 启动二进制日志 |
Binlog-do-db=数据库名字 | 需要同步的数据库名字 |
Binlog-ignore-db=mysql | 不同步系统库 |
4.保存退出重启服务
5.进入数据库
执行
change master to master_host=’ip’,master_user=’root’,master_password=’’,master_log_file=’日志文件的名字’,master_log_pos=大小;
6.slave执行开始备份:
执行备份
Slave start
查看从机的状态 两个yes就成功
如果配到这一步没成功,服务重新启动再进来,或者把备份关掉,退出,再进来重新启动备份
7.测试:
在主库中插入数据 到从库中查询 如果数据一致,代表配置成功
主库插入数据
丛机查看
show slave status \G