mysql主从复制
简要:
一、mysql用户授权
二、mysql bin-log日志
三、mysql主从复制
一、mysql用户授权
1、命令
2、作用:进行权限控制
3、例子:
(备注: 允许用户xiaobei从localhost访问mysql,而且需要密码验证,密码为xiaobei)
4、查看mysql用户权限表
二、bin-log日志
1、查看bin-log是否开启
2、开启bin-log日志
修改配置文件
[mysqld]
log-bin=mysql-bin
3、重启mysql服务器,验证是否开启
4、物理结构
5、与bin-log有关的日志刷新
5.1、flush logs
生成一个最新的bin-log日志
5.2、show master status;
查看最后一个bin日子
5.3、reset master
清空所有的bin-log日志
6、什么样的语句会记录在bin-log日志中
a、执行前,bin-log的起始位置
b、执行查询
c、执行修改
d、执行插入
e、执行删除
(总结: bin-log只会记录增删改的sql语句。)
7、查看bin-log日志内容
使用mysqlbinlog工具
三、mysql主从复制
1、作用:
a、如果主服务器出现问题,可以快速切换到从服务器提供的服务
b、可以在从服务器上执行查询操作,降低主服务器的访问压力
c、可以在从服务器上执行备份,以避免备份期间影响主服务器的服务
(备注: 注意一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得)
2、配置
2.1、修改主数据库配置文件
重启服务
2.2、进入mysql客户端,查看binlog日志
2.3、建立从服务授权用户
2.4、修改从服务器配置文件
2.5、重启服务后,进入客户端,建立主从复制
2.6、启动从服务器
2.7、查看从服务器信息
(红色区域都显示:yes,说明配置成功)
2.8、验证
a、主从服务器都在同一数据库下
b、在主服务器执行
c、在从服务器查看
此时,主从数据库复制就成功了。
总结: 进行主从复制的步骤
a、建立授权用户
b、修改主从服务器配置
c、在从服务器指定主服务器
d、在从服务器启动主从复制
常见问题:
1、vmware复制centos虚拟机碰到Device eth0 does not seem to bepresent的问题
因为需要做集群测试,需要多台虚拟机作为测试机。如果每个虚拟机都要安装系统就很麻烦,幸好vmare可以通过复制虚拟机的物理文件直接生成一个新的虚拟机。只是复制的虚拟机网络会失效,重启网络服务器的时候会提示如下错误:
Device eth0 does not seem to bepresent,delaying initialization.
网上搜索后才发现原因所在:原来vmware在复制了虚拟机后会自动生成一个新的网卡设备供该虚拟机使用,比如原先的网卡是eth0,复制虚拟机后后就会增加eth1。但是由于没有生成相应的/etc/sysconfig/network-scripts/ifcfg-eth1文件,导致网络连接失败,这个应该是vmware的一个bug。
查看网卡配置文件/etc/udev/rules.d/70-persistent-net.rules,可以看到多出了一个eth1的配置。
解决办法
编辑网卡配置文件/etc/udev/rules.d/70-persistent-net.rules,将eth0的网卡地址修改成eth1的网卡地址,而后删除eth1这一行。
编辑网卡IP地址配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,修改网卡物理地址HWADDR为上面eth0的网卡地址。
修改完成后重启系统,就能正常启动网络服务了。
2、Fatal error: The slave I/O thread stops because masterand slave have equal MySQL server UUIDs; these UUIDs must be different forreplication to work.
解决方法:
修改数据库data目录下的auto.cnf