手机制作网站app,怎么做外网网站监控软件,单页网站与传统网站的区别,建立公司流程文章目录 1.主从复制概念2.主从复制原理3.主从复制结构的搭建3.1 主库配置3.2 从库配置 4.测试主从复制是否搭建成功5.主从复制的小结 DML#xff08;data manipulation language#xff09;是数据操纵语言#xff1a;它们是SELECT、UPDATE、INSERT、DELETE#xff0c;就象… 文章目录 1.主从复制概念2.主从复制原理3.主从复制结构的搭建3.1 主库配置3.2 从库配置 4.测试主从复制是否搭建成功5.主从复制的小结 DMLdata manipulation language是数据操纵语言它们是SELECT、UPDATE、INSERT、DELETE就象它的名字一样这4条命令是用来对数据库里的数据进行操作的语言。 DDLdata definition language是数据定义语言DDL比DML要多主要的命令有CREATE、ALTER、DROP等DDL主要是用在定义或改变表TABLE的结构数据类型表之间的链接和约束等初始化工作上他们大多在建立表时使用。
DCLDataControlLanguage是数据库控制语言是用来设置或更改数据库用户或角色权限的语句包括grant,deny,revoke等语句。
1.主从复制概念
主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中然后在从库上对这些日志重新执行也叫重做从而使得从库和主库的数据保持同步。
2.主从复制原理
主库中的数据是怎么同步到从库中的呢 主库一旦发生增删改等操作以及执行DDL语句的时候主库会将所有的数据变更写入到一份binlog二进制日志当中。在这份二进制日志当中就记录着主库所有的数据变更。
从库涉及两个线程一个线程叫 IOthread它会发起一个请求来连接master数据库并读取master数据库中的binlog日志。当binlog日志读取并且返回之后 IOthread会写入到slave自身的一份日志当中这份日志叫中继日志Relay log。另外slave中还有另外一个叫SQLthread的线程这个SQLthread主要负责读取中继日志中的数据然后把中继日志中所记录的数据变化再反映到自身数据库的数据变化从而保证主从数据库是一致的。
3.主从复制结构的搭建 #关闭防火强
systemctl stop firewalld
#关闭防火墙的开机自启
systemctl disable firewalld#查看服务器mysql的状态
systemctl stop firewalld3.1 主库配置 vim /etc/my.cnf配置完主库后重启主库
systemctl restart mysqld下一步需要登陆主库并在主库上创建一个远程连接账号并赋予主从复制权限。
登陆mysql指令
mysql -uroot -p%表示创建的这个用户可以在任意主机上访问当前服务器 创建远程连接账户 %表示创建的这个用户可以在任何服务器上
CREATE USER itcast% IDENTIFIED WITH mysql_native_password BY Root123456;给itcast用户分配主从复制的权限
GRANT REPLICATION SLAVE ON *.* TO itcast%;通过以下指令查看二进制日志的坐标
show master status;3.2 从库配置
对于从库来说我们只需要从从库里面进行查询即可不需要从从库里面进行写入操作所以将read-only设置为1这是设置的只读仅仅代表的是对普通用户是只读的如果这个用户具有超级管理员权限它也是可以进行读写的如果想要将超级管理员的读写功能也变成只读的也可以再设置一个参数这个参数叫super-read-only1
修改从库mysql配置文件
vim /etc/my.cnf添加两条配置 重启从库mysql
systemctl restart mysqld接着配置主库与从库使其相互关联 设置主库配置从库中执行下面的语句 8.0.23之后的版本设置如下
CHANGE REPLICATION SOURCE TO SOURCE_HOSTxxx.xxx’,SOURCE_USERxxx,SOURCE_PASSWORDxxx,SOURCE_LOG_FILExxx,SOURCE_LOG_POSxxx;8.0.23之前的版本设置如下
CHANGE MASTER TO MASTER_HOST SOURCExxx.xxx.xxx.xxx’,MASTER_USERxxx,MASTER_PASSWORDxxx,MASTER_LOG_FILExxx,MASTER_LOG_POSxxx;start replica;执行完上面的命令主从复制就已经启动了。 \G 的作用是显示日志的时候每一列数据转换为每一行查看起来比较方便
show replica status\G;IO_runing表示IO那组线程运行是否正常表示读取二进制日志并写入从库中继日志的线程 SQL——running表示那一组sql线程运行是否正常。表示从库读取中继日志并写入从库反映自身变化的。
4.测试主从复制是否搭建成功
首先查看主库中的数据和从库中的数据并在主库当中执行增删改的操作。 主库中创建一个数据库db01并插入数据 查看从库中是否同步 刚才演示的主库和从库复制它是从二进制日志的当前位置往后进行同步的如果之前的数据也需要同步到从库中这时就需要将主库的数据导入到一个sql文件中然后在从库中执行此sql脚本来保证主库和从库的初始数据是一致的。然后再从当前位置往后进行主从复制的同步。
5.主从复制的小结