MySQL读写分离技术
一、读写分离(主从复制)
1、什么是主从复制、读写分离
- 主从复制:指定一台MySQL服务器专门写入数据,其他毫秒级自动复制(同步)
- 读写分离:在主服务器增/改/删,从服务器查询
2、实现原理
二、bin-log日志
什么是bin-log日志
binlog是以二进制存储的日志,直接打开无法查看,可以通过SQL查看,里面存储的是增、改、删SQL语句,后期可以通过binlog日志里面的SQL语句实现主从复制、或者灾难恢复。
开启binlog日志
步骤1:vi /etc/my.cnf
步骤2:重启即可 + 验证
2、查看logbin日志里面的内容
- 列表(show master logs)
- 清空(reset master)
- 刷新(flush logs) 生成一个新编号的binlog日志文件
- 查看指定日志(show binlog events in ‘mysql-bin.000002’)
三、具体的配置步骤
1、配置主服务器
- 步骤1:开启bin日志;
- 步骤2:设置一个server-id 该值必须唯一不能和从服务器相同;
- 步骤3:重启服务器
- 步骤4:授权用户可以从从服务器登陆
语法:create user ‘username’@’host’ IDENTIFIED BY ‘password’;
语法:grant 权限列表 on 数据库名.表名 to ‘用户民’@’IP地址’ identified by 密码
create user ‘laolu’@’%’ IDENTIFIED BY ‘admin888’;
grant all on *.* to ‘laolu’@’%’ identified by ‘admin888’;
FLUSH PRIVILEGES;
查看可登陆用户:select Host,user,password from mysql.user;
- 步骤5:添加3306防火墙例外
service iptables stop
配置从服务器
- 步骤1:设置一个server-id 该值必须唯一不能和从服务器相同;
- 步骤2:重启服务器
- 步骤3:change master 语句指定同步位置
- 切换到主服务器,查询相关信息,通过SQL语句【show master status;】
2)切换到所有从服务器执行下属命令
change master to
master_host=’192.168.21.136‘,master_user=’laolu’,master_password=’admin888′,master_log_file=’mysql-bin.000005‘,master_log_pos=120;
- 步骤4:启动主动同步
- 步骤5:验证是否成功即可
3、测试
三、TP框架里实现读写分离
MySQL管理命令
【mysql配置文件】
/etc/my.cnf
【开启mysql服务】
/php/server/mysql/bin/mysqld_safe –user=mysql &
【关闭mysql服务】
ps -A | grep mysql # 查看mysql进程
kill -9 进程PID 进程PID # 结束进程 关闭mysql服务
【登陆MySQL数据库】
/php/server/mysql/bin/mysql -uroot -p