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

c2c商城网站建设公司集团培训网站建设

c2c商城网站建设公司,集团培训网站建设,凡科网网站后台建设,新网站开发一、环境介绍 二、MySQL安装 在两台服务器上都安装mysql 1、拉取镜像 docker pull mysql:8.0.272、创建挂载目录 mkdir -p /data/mysql/3、运行容器 主节点 docker run \--restartalways \--name master_mysql -p 3306:3306 \-e MYSQL_ROOT_PASSWORD123456 -d \-v /data/m…一、环境介绍 二、MySQL安装 在两台服务器上都安装mysql 1、拉取镜像 docker pull mysql:8.0.272、创建挂载目录 mkdir -p /data/mysql/3、运行容器 主节点 docker run \--restartalways \--name master_mysql -p 3306:3306 \-e MYSQL_ROOT_PASSWORD123456 -d \-v /data/mysql/:/var/lib/mysql mysql:8.0.27 \--lower_case_table_names1 \--default_authentication_pluginmysql_native_password从节点 docker run \--restartalways \--name slave_mysql -p 3306:3306 \-e MYSQL_ROOT_PASSWORD123456 -d \-v /data/mysql/:/var/lib/mysql mysql:8.0.27 \--lower_case_table_names1 \--default_authentication_pluginmysql_native_passwordMYSQL_ROOT_PASSWORD :设置的mysql root用户的密码 lower_case_table_names 是否大小写敏感1表示不区分大小写 三、配置MySQL主从同步 两个数据库如果有数据先把两个数据库的数据导成一样的 1、同步方式 replication GTID 双向同步 2、设置master 同步到slave master开启binlog #将mysql容器中的my.cnf配置文件拷贝到宿主机来修改 docker cp master_mysql:/etc/mysql/my.cnf ./在my.cnf 中添加 [mysqld] log-binmysql-bin # 开启二进制日志 server-id1 # 设置server-id。master和每一个slave的server-id都不能一样用于唯一标识节点 sync_binlog1 #主从同步跳过错误 slave-skip-errors1062,1053,1146,1007,1008,1050,1051 #从库的中继日志主库日志写到中继日志中继日志再重做到从库 # relay-logmyslql-relay-bin# binlog保留时间7天 expire_logs_days7# binlog 文件的大小 max_binlog_size1G # 设置不要赋值的数据 binlog-ignore-dbmysql binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema binlog-ignore-dbsys#将修改后的文件复制到容器内 docker cp my.cnf master_mysql:/etc/mysql/注意需要重启master_mysql容器 master创建用于同步的用户 mysql 客户端进入控制台执行下面命令创建用户 先进入docker 容器 docker exec -it master_mysql /bin/bash在进入mysql 控制台 mysql -u root -p进入mysql控制台后执行下面的语句: # 创建用户用于从机复制数据 CREATE USER repl% IDENTIFIED BY 123456;# 分配权限 #注意此处 *.* 不允许更改因为 replication slave 权限是一个全局权限不可以指定在某一个库上 GRANT REPLICATION SLAVE ON *.* TO repl%;# 刷新权限 flush privileges;master锁定 依然在控制台执行 FLUSH TABLE WITH READ LOCK;master查看状态 同样还在控制台 SHOW MASTER STATUS;记录二进制文件名和位置例如mysql-bin.000001、767 master解锁 同样在控制台执行 unlock tables;slave指定同步点 slave指定从master的哪个位置开始进行同步 进入slave_mysql的容器再进入mysql的控制台执行下面语句 CHANGE MASTER TOMASTER_HOST192.168.5.136, # master ipMASTER_PORT3306, # master portMASTER_USERrepl, # 上文 master 上创建的同步用户名MASTER_PASSWORD123456, # 同步用户密码MASTER_LOG_FILEmysql-bin.000001, # 使用上面的 mysql-bin.000001MASTER_LOG_POS767; # 使用上面的 767slave设置server-id #将mysql容器中的my.cnf配置文件拷贝到宿主机来修改 docker cp slave_mysql:/etc/mysql/my.cnf ./在my.cnf 中添加 [mysqld] server-id2 # 设置server-id。master和每一个slave的server-id都不能一样用于唯一标识节点 sync_binlog1将my.cnf 复制到容器 docker cp my.cnf slave_mysql:/etc/mysql/注意重启容器 slave开启复制 在slave_mysql 容器的mysql 控制台执行 start slave;slave查看状态 同样在slave的mysql控制台 # 查看slave状态 show slave status\G;查看结果类似如下 主要关注红框的两个值都为Yes表示成功主从同步配置完成 设置salve 同步到master 将上面的操作反过来重复操作一遍 测试 分别在master 和slave 上创建数据库创建表插入数据删除数据看两个库是否会同步注意必须执行sql,只有执行的是sql 语句才会同步。 四、keepalived 安装 安装keepalived 两台服务器都安装keepalived yum -y install keepalived 配置keepalived master 节点 cat /etc/keepalived/keepalived.conf EOF ! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL #同一个小组要不一样 } vrrp_script chk_mysql {script /etc/keepalived/check_mysql.sh #检查脚本interval 5weight -5fall 2rise 1 } vrrp_instance VI_1 {state MASTERinterface ens192 #网卡名称unicast_src_ip 192.168.5.136unicast_peer {192.168.5.137}virtual_router_id 51 #这个同一个分组要一样priority 100advert_int 2authentication {auth_type PASSauth_pass mysql}virtual_ipaddress {192.168.5.189 #vip地址}track_script {chk_mysql } }EOFslave节点 cat /etc/keepalived/keepalived.conf EOF ! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL2 } vrrp_script chk_mysql {script /etc/keepalived/check_mysql.shinterval 5weight -5fall 2rise 1 } vrrp_instance VI_1 {state BACKUPinterface ens192unicast_src_ip 192.168.5.137unicast_peer {192.168.5.136}virtual_router_id 51priority 80nopreemptadvert_int 2authentication {auth_type PASSauth_pass mysql}virtual_ipaddress {192.168.5.189}track_script {chk_mysql } }EOF健康检查脚本 两个服务器的一样 cat /etc/keepalived/check_mysql.sh EOF #!/bin/basherr0 for k in $(seq 1 3) docheck_code$(pgrep mysql)if [[ $check_code ]]; thenerr$(expr $err 1)sleep 1continueelseerr0breakfi doneif [[ $err ! 0 ]]; thenecho systemctl stop keepalived/usr/bin/systemctl stop keepalivedexit 1 elseexit 0 fi EOFchmod x /etc/keepalived/check_mysql.sh启动keepalived systemctl daemon-reload systemctl enable --now keepalived查看keepalived状态, 如果是active 就表示正常 systemctl status keepalived配置启动keepalived 的定时任务 如果当master 节点挂掉了后 排除故障之后master节点的mysql 容器会被启动启动后从节点的数据就会同步到master 这个时候不能立即启动keepalived ,因为我们配置的是抢占式 只要主节点的keepalived 恢复了就会抢回VIP 这个时候可能数据还没有同步完会造成数据库数据不同步所以这里隔两分钟在去启动keepalived . 两个服务器都需要 mkdir -p /data/crontabsh启动keepalived脚本 cat /data/crontabsh/check_keepalived.sh EOF #!/bin/bash check_mysql$(pgrep mysql) check_keepalived$(pgrep keepalived) if [[ $check_mysql ! ]] [[ $check_keepalived ]]; then echo keepalived未启动即将执行启动命令systemctl start keepalived elseexit -1 fiEOF给脚本权限 chmod x /data/crontabsh/check_keepalived.sh加定时任务 [rootlocalhost crontabsh]# crontab -e*/2 * * * * /bin/bash /data/crontabsh/check_keepalived.sh[rootlocalhost crontabsh]# crontab -l */2 * * * * /bin/bash /data/crontabsh/check_keepalived.sh检查VIP是否漂移 通过 ip addr 查看VIP是否在该节点上 开始VIP应是在 master 上的 停止master 上的mysql 容器 看VIP是否能漂移到slave 节点 当VIP在slave 节点 启动master 上的mysql ,隔两分钟再看VIP 是否能回到master 上来。
http://wiki.neutronadmin.com/news/344382/

相关文章:

  • 做网站开发学什么语言网站开发 定义
  • 坦洲网站建设公司哪家好建设网站导航怎么盈利
  • 全国企业信息官网网站网站设计的大公司
  • 聊城网站建设国外最大的素材网站
  • 山东鲁桥建设有限公司网站2024免费网站推广大全
  • 网站建设光盘网站开发php工程师
  • 钢材销售网站建设东莞网络推广运营平台
  • asp.net 建网站公司简介模板怎么做
  • 啥是深圳网站定制开发之力
  • 外贸网站平台哪个好wordpress怎么做下载页
  • 建设门户网站特点批量注册域名
  • 成都网站建设制作做网站要注册公司吗
  • 做网站怎么做小图标wordpress算数验证码
  • 网站开发的背景与环境服装网站建设策划书 百度文库
  • 重庆建企业网站17网站一起做网店怎么拿货
  • 哪个网站推广好wordpress列表无图像
  • 简述网站规划的一般步骤营销型网站的推广
  • asp net做网站视频长沙建一个网站多少钱
  • 云南做企业网站多少钱返利 wordpress
  • wordpress建站事例昨天的新闻
  • ps免费素材网站有哪些职业生涯规划ppt免费模板
  • 中山专业网站制作网站建设课程ppt
  • 网站流量超限什么意思注册人力资源公司需要什么条件
  • 恶意网站是怎么实现的wordpress卡车主题
  • 网站建设经验交流材料医院建设官方网站必要性
  • 延安网站设计公司医疗器械股票龙头股票
  • 网站副标题网页微博怎么用qq登录
  • 城市建设网站海诚网站建设
  • 如何学会建网站中国最顶尖的服装设计公司
  • 那些做seo的网站丹阳论坛