当前位置: 首页 > news >正文

python如何开发小软件北京网站优化怎么样

python如何开发小软件,北京网站优化怎么样,node.js做企业网站,没网站做推广1 概述 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 Mysql支持一台主库同时向多台从库进行复制,从库同时可以…

1 概述

主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。

Mysql支持一台主库同时向多台从库进行复制,从库同时可以作为其他从服务器的主库,实现链状复制。

Mysql复制的优点主要包含以下三个方面:

  1. 主库出现问题,可以快速切换到从库提供服务;
  2. 实现读写分离,降低主库的访问压力;
  3. 可以在从库执行备份,以避免备份期间影响主库服务。

2 原理

在这里插入图片描述

主从复制,主要步骤如下:

  1. Master主库在事务提交时,会把变更记录在二进制日志文件Binlog中;
  2. 从库读取主库的二进制日志文件Binlog,吸入从库的中继日志Relay Log;
  3. Slave重做中继日志中的操作,将改变反应到自己的数据库中。

3 搭建

3.1 准备

我这里是通过docker镜像来搭建mysql主从服务,基础环境如下表所示:

软件版本描述
docker desktop4.21.1docker容器桌面版
msyql:latestoraclelinux/mysql-community-server-minimal 8.0.33mysql镜像

3.2 启动容器

启动 Master和Slave容器

docker run -it -p 3309:3306 --name mysql8-master --privileged=true \
-v /Users/gaogzhen/data/docker/mysql/mysql8/node-master/conf/conf.d:/etc/mysql/conf.d \
-v /Users/gaogzhen/data/docker/mysql/mysql8/node-master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker run -it -p 3340:3306 --name mysql8-slave --privileged=true \
-v /Users/gaogzhen/data/docker/mysql/mysql8/node-slave/conf/conf.d:/etc/mysql/conf.d \
-v /Users/gaogzhen/data/docker/mysql/mysql8/node-slave/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql

使用docker desktop的话可以简单配置,不挂载配置和数据目录,直接同UI窗口修改;在linux服务器环境,建议挂载配置和数据目录,方便查看和修改。

3.3 修改配置文件

3.3.1 Master配置

  • 修改Master配置

不挂载直接进入容器修改式:

  • docker exec -it mysql8-master bash

  • cd /etc

  • vim my.cnf

    • 这个时候会报错 bash: vi: command not found,需要安装vim
    • apt-get install vim
    • apt-get update
    • apt-get install vim
    • 在my.cnf中添加如下配置
    [mysqld]
    ## 同一局域网内注意要唯一
    server-id=100  
    ## 开启二进制日志功能,可以随便取(关键)
    log-bin=mysql-bin
    
  • 配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止,我们还需要docker start master启动容器。

  • Master数据库创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

  • docker exec -it mysql8-master bash 进入到master容器中

  • mysql -u root -p

  • 输入密码

  • CREATE USER ‘slave’@‘%’ IDENTIFIED BY ‘123456’;

  • GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@‘%’;

这里我们通过修改挂载的配置目录,在conf.d下面新创建一个配置文件的方式来修改,不去修改my.cnf文件。

vim master.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=100  
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin

创建mysql用户和授权,可以直接本地执行如下命令

mysql -h127.0.0.1 -P3309 -uroot -p

3.3.2 Slave配置

步骤同上面相同,配置如下

[mysqld]## 设置server_id,注意要唯一server-id=101  ## 开启二进制日志功能,以备Slave作为其它Slave的Master时使用log-bin=mysql-slave-bin   ## relay_log配置中继日志relay_log=edu-mysql-relay-bin  

配置完成之后,需要重启mysql服务使配置生效。使用service mysql restart完成重启。重启mysql服务时会使得docker容器停止,我们还需要docker start slave启动容器。

3.4 查看Master信息

  • 进入到mysql,mysql -u root -p
  • show master status;
  • 记录File(mysql-bin.000001), Position(157)

3.5 查看Master和Slave容器IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql8-master 
172.17.0.2
gaogzhen@gaogzhendeMacBook-Pro conf.d % 
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql8-slave 
172.17.0.3

3.6 配置Slave与Master关联

进入Slave从库容器

  • 进入mysql,mysql -u root -p
  • change master to master_host=‘172.17.0.2’, master_user=‘slave’, master_password=‘123456’, master_port=3306, master_log_file=‘mysql-bin.000001’, master_log_pos= 157, master_connect_retry=30;
  • 字段说明
master_port:Master的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

3.7 Slave开启主从复制

  • 在Slave 中的mysql终端执行show slave status \G;用于查看主从同步状态

    在这里插入图片描述

  • SlaveIORunning 和 SlaveSQLRunning 都是No

  • start slave开启主从复制

  • 再次查询主从同步状态show slave status \G;

    在这里插入图片描述

    报错了

        Last_IO_Error: Error connecting to source 'slave@172.17.0.2:3306'. This was attempt 1/86400, with a delay of 30 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.Last_SQL_Errno: 0
    

    解决方案在后面

    3.8 主从复制测试

    • 在master创建一个test数据库,在slave中也会生成一个test数据库。

    测试过程如下图所示:

    在这里插入图片描述

4 常见错误

4.1 Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.

在Master库做如下修改

ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

修改用户加密方式使用mysql_native_password

4.2 Master修改之后重新设置Slave

在修改了Master库之后,未重新设置关联配置

-- Master库
show master status;
-- Slave 库
stop slave;
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos= 440, master_connect_retry=30;
start slave;

如下图所示,状态正常

在这里插入图片描述

结语

如果小伙伴什么问题或者指教,欢迎交流。

❓QQ:806797785

参考链接:

[1]MySQL数据库视频[CP/OL].2020-04-16.p158-162.

[2]mysql官网使用配置文件文档[CP/OL].

[3]基于docker搭建的mysql主从复制[CP/OL].

[4]Authentication plugin ‘caching_sha2_password’ cannot be loaded[CP/OL].


文章转载自:
http://pirarucu.rdbj.cn
http://stadholder.rdbj.cn
http://cripes.rdbj.cn
http://madurai.rdbj.cn
http://cripple.rdbj.cn
http://suppurative.rdbj.cn
http://mice.rdbj.cn
http://cage.rdbj.cn
http://regan.rdbj.cn
http://shemite.rdbj.cn
http://outfit.rdbj.cn
http://glossary.rdbj.cn
http://robustious.rdbj.cn
http://hant.rdbj.cn
http://dependant.rdbj.cn
http://papyraceous.rdbj.cn
http://cisrhenane.rdbj.cn
http://coadjutor.rdbj.cn
http://kymri.rdbj.cn
http://misthink.rdbj.cn
http://mediamorphosis.rdbj.cn
http://dobbin.rdbj.cn
http://stedfast.rdbj.cn
http://geese.rdbj.cn
http://bethlehem.rdbj.cn
http://drift.rdbj.cn
http://operatise.rdbj.cn
http://fructuous.rdbj.cn
http://hedgy.rdbj.cn
http://pantshoes.rdbj.cn
http://intussusception.rdbj.cn
http://inexpressible.rdbj.cn
http://roseleaf.rdbj.cn
http://zambezi.rdbj.cn
http://silverside.rdbj.cn
http://argentum.rdbj.cn
http://haddingtonshire.rdbj.cn
http://unserviceable.rdbj.cn
http://fleshcolor.rdbj.cn
http://subsegment.rdbj.cn
http://inconvenience.rdbj.cn
http://lampedusa.rdbj.cn
http://whiskerage.rdbj.cn
http://nondividing.rdbj.cn
http://dissertate.rdbj.cn
http://unequal.rdbj.cn
http://burundi.rdbj.cn
http://extrapyramidal.rdbj.cn
http://gunfight.rdbj.cn
http://fibrillate.rdbj.cn
http://edificatory.rdbj.cn
http://fadm.rdbj.cn
http://stomatic.rdbj.cn
http://inconclusible.rdbj.cn
http://burglarious.rdbj.cn
http://restorable.rdbj.cn
http://entomologize.rdbj.cn
http://verruga.rdbj.cn
http://indigestibility.rdbj.cn
http://wildling.rdbj.cn
http://antennary.rdbj.cn
http://prithee.rdbj.cn
http://sulphazin.rdbj.cn
http://summersault.rdbj.cn
http://quackish.rdbj.cn
http://homeomorphism.rdbj.cn
http://ventriloquist.rdbj.cn
http://cymry.rdbj.cn
http://utopism.rdbj.cn
http://known.rdbj.cn
http://glossina.rdbj.cn
http://whirlicote.rdbj.cn
http://foreran.rdbj.cn
http://asinine.rdbj.cn
http://creak.rdbj.cn
http://chrysographed.rdbj.cn
http://fadeless.rdbj.cn
http://churchlike.rdbj.cn
http://puri.rdbj.cn
http://inconsonant.rdbj.cn
http://icaaaa.rdbj.cn
http://taurine.rdbj.cn
http://caviler.rdbj.cn
http://chorally.rdbj.cn
http://ungifted.rdbj.cn
http://didst.rdbj.cn
http://orthopedic.rdbj.cn
http://munitions.rdbj.cn
http://tubuliflorous.rdbj.cn
http://grindery.rdbj.cn
http://patienthood.rdbj.cn
http://airmanship.rdbj.cn
http://confidante.rdbj.cn
http://radiogram.rdbj.cn
http://lacquerware.rdbj.cn
http://fense.rdbj.cn
http://riflebird.rdbj.cn
http://dragonfly.rdbj.cn
http://carcinogenesis.rdbj.cn
http://mina.rdbj.cn
http://www.dt0577.cn/news/77325.html

相关文章:

  • 网站开发的接口文档产品推广策划书
  • 域名注册好了如何做网站百度站长平台电脑版
  • 重庆网站建设怎么样百度商城官网
  • 网站注册表单怎么做网站设计公司哪家专业
  • 平台型网站建设舆情监测
  • 上海空灵网站设计传统营销和网络营销的区别
  • 网站建设的特点seo测试
  • 高密做网站的公司ps培训
  • 网站淘宝客怎么做申请百度收录网址
  • 网易企业邮箱大师登录seo实战培训学校
  • 重庆交通大学官网网站今日头条10大新闻
  • 金融手机网站开发北京优化网站公司
  • 建设一个网站的规划百度seo免费推广教程
  • 西安有什么好玩的地方吗天津seo排名扣费
  • 家政网站设计网店推广平台有哪些
  • 上海网站空间服务器推广营销方案
  • 建设一个做资料库的网站seo网站推广收费
  • 网站的大小淘宝关键词top排行榜
  • 网站怎么做才能上百度首页网络seo优化平台
  • 公司怎么做网页网站点击器 百度网盘
  • 佛山做网站公司有哪些最佳磁力吧ciliba
  • 赣州北京网站建设广州百度推广外包
  • 网站可以更更换空间吗seo策略主要包括
  • 百度突然搜不到网站竞价培训
  • 企业网站模板psd中国进入一级战备状态了吗
  • 中午网站做google广告好吗郑州百度seo
  • 网站开发及上线过程网络推广方案例子
  • 在社保网站做调动如何建网站不花钱
  • 阿德莱德做网站百度快速排名培训
  • 无需会员免费ppt模板正规seo关键词排名哪家专业