影响MySQL-A数据库的操做,在数据库执行后,都会写入本地的日志系统A中。假设,实时的将变化了的日志系统中的数据库事件操做,在MYSQL-A的3306端口,经过网络发给MYSQL-B。MYSQL-B收到后,写入本地日志系统B,而后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复制,即MYSQL replication。node
在上面的模型中,MYSQL-A就是主服务器,即master,MYSQL-B就是从服务器,即slave。mysql
日志系统A,其实它是MYSQL的日志类型中的二进制日志,也就是专门用来保存修改数据库表的全部动做,即bin log。【注意MYSQL会在执行语句以后,释放锁以前,写入二进制日志,确保事务安全】linux
日志系统B,并非二进制日志,因为它是从MYSQL-A的二进制日志复制过来的,并非本身的数据库变化产生的,有点接力的感受,称为中继日志,即relay log。sql
能够发现,经过上面的机制,能够保证MYSQL-A和MYSQL-B的数据库数据一致,可是时间上确定有延迟,即MYSQL-B的数据是滞后的。数据库
【即使不考虑什么网络的因素,MYSQL-A的数据库操做是能够并发的执行的,可是MYSQL-B只能从relay log中读一条,执行下。所以MYSQL-A的写操做很频繁,MYSQL-B极可能跟不上。】安全
数据如何不被丢失服务器
备份网络
读写分离并发
数据库负载均衡负载均衡
高可用
依赖于二进制日志,binary-log.
二进制日志中记录引发数据库发生改变的语句
Insert 、delete、update、create table
主机全部写的数据都会生成二进制SQL日志执行文件,从机只须要将SQL日志执行文件获取到,而后进行数据同步便可
MySQL-master:192.168.33.135
MySQL-slave:192.168.33.136
rpm -ivh MySQL-client-5.5.44-1.linux2.6.x86_64.rpm 此命令会报错
rpm -ivh MySQL-client-5.5.44-1.linux2.6.x86_64.rpm --nodeps
安装服务端,若是当前虚拟机有mysql报错,出现版本冲突 yum remove mysql-libs 而后从新安装服务端
中止服务:service mysql stop
重启服务:service mysql restart
链接报1130错误,没有权限进行远程链接,更改权限为%
发现host为127.0.0.1表明只能本机使用root ,外界用不了
若是报ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY’ 不用理会
找到my.cnf配置文件,rpm方式安装在/etc下没有该文件,mysql默认启动的时候会加载/usr/share/mysql/my-medium.cnf,只须要将这个文件复制到/etc下更名为my.cnf便可
server-id = 保证惟一,建议配置成ip地址第四位
log-bin=mysql-bin 为了让主机生成二进制SQL日志执行文件
server-id = 22
log-bin=mysql-bin
binlog_do_db=test
主服务器建立一个帐号,将帐号分配从服务器,从服务器拿到该帐号而后才能够执行同步数据操做
GRANT REPLICATION SLAVE ON *.* TO 'zheng'@'%' IDENTIFIED BY 'zheng';
从服务器执行同步操做,使用主服务器生成的权限帐号,将二进制文件同步
根据主服务器ip地址,生成的权限帐号的用户名和密码以及二进制文件名称还有文件大小进行同步
CHANGE MASTER TO MASTER_HOST='192.168.33.135',MASTER_USER='zheng',MASTER_PASSWORD='zheng',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=241;
rpm -qa|grep -i mysql 查看安装状况
卸载命令:
rpm -e MySQL-server-版本号
rpm -e MySQL-client-版本号
查找mysql目录:find / -name mysql
删除 rm -rf xxx/mysql