主从复制的好处?为什么要用主从复制?
当系统访问量大时,单数据库可能无法保证系统的性能,需要配置多台数据库来提高系统性能进行读写分离,把访问量分担,同时主从复制也起到了一个数据备份的功能。
mysql主从复制的原理是什么?
master将改变记录到二进制日志(binary log)这个过程叫做二进制日志时间 binary log events,
slave 将binary log events 拷贝到它的中继日志(relay_log)。
slave重做中继日志中的事件,将改变应用到自己的数据库中,mysql复制时异步的且串行化的
简单通俗说,主机把改变操作记录保存到一个日志文件中,从机获取到这个日志文件,在自己的机器上运行
mysql主从复制,一主一从的配置过程环境准备
准备两台装有mysql数据库的机器,在此笔者使用了两台虚拟机系统是ubuntu18.04,在一台机器安装好mysql数据库之后克隆就行了(通过这种方法会有一个坑后面再说),保证这两台虚拟机可上网可以相互ping通
mysql主从复制,一主一从主机配置
修改数据库配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf, 注意:这个文件根据安装mysql方式不同路径不同,需要找到自己mysql的配置文件 在[mysqld]节点中配置如下:
配置说明:
server-id:指定master服务id,必须
log-bin=mysql-bin:需要打开日志文件,必须,这里有些人会指定一个目录,但是笔者指定一个目录之后发现mysql就启动不起来了,这里直接设置为 mysql-bin 就可以,生成的文件过后是可以使用命令查看的
错误日志文件归集路径,可选
read-only=0 数据库读写模式 因为主机一般都是可读可写的,也可以使用默认值这项可选, 0为可读可写,1为只读
binlog_do_db :这项可选所以没有配置,意思 要复制哪些数据库
binlog_ignore_db 这项可选所以没有配置,意思 忽略复制哪些数据库
这里就完成了主机数据库配置文件的修改,保存之后重启mysql服务。
mysql主从复制,一主一从从机配置
从机数据库配置相对简单点,也是修改数据库配置文件(如上路径),只需要在【mysqld】节点中配置server-id即可:
server-id不能和主机重复了,read-only这里理论上从机只做读操作,所以设置为1,但是这里有坑下文再说
从机的配置配置一个server-id就可以了保存退出,重启服务,这里我们就配置好了一台主机和从机 主机:192.168.192.133 从机:192.168.192.132
查看log-bin文件的生成位置
首先登录到数据库中 mysql -u root -p 根据提示输入密码
输入命令:show variables like '%log_bin%';