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

哪个网站的旅游板块做的好电商网站怎样优化

哪个网站的旅游板块做的好,电商网站怎样优化,聊天网站开发,怎么下载字体到wordpress在大数据-Hadoop体系中 配置MySQL主主keeplive高可用 注意#xff1a;这个是我两年前的word文档#xff0c;可以当作参考文档有个思路参考一下#xff0c;但是里面可能有些地方有误 另外 :关于一些企业级实战技术可以参考这篇mysql 物理备份 MySQL 全量备份 增量备份 差异…在大数据-Hadoop体系中 配置MySQL主主keeplive高可用 注意这个是我两年前的word文档可以当作参考文档有个思路参考一下但是里面可能有些地方有误 另外 :关于一些企业级实战技术可以参考这篇mysql 物理备份 MySQL 全量备份 增量备份 差异备份 日志备份万字长文 1.3万字-CSDN博客文章浏览阅读899次点赞26次收藏25次。版权声明本文为博主原创文章遵循版权协议转载请附上原文出处链接和本声明注意通常 完备增备日志binlog)备结合使用 差异则根据具体情况选用。此备份过程属于公司 常用的单个数据库备份技术中的mysql 物理备份 MySQL 全量备份 增量备份 差异备份 日志备份至于单个数据库备份技术中的逻辑备份和混合数据库及其备份技术本人会另外开文章再进行说明https://blog.csdn.net/qq_61414097/article/details/141228466 另外我当年参考了这几位老哥的文档 1Mysql—主从、主主、主备模式 - 掘金 (juejin.cn) https://juejin.cn/post/7205007227560509497 2mysql配置主从数据库(超简单) https://juejin.cn/post/7205007227560509497 MySQL主主数据同步_mysql主主同步-CSDN博客 3. 史上最简单keepalived安装教程亲测可用并实际应用于生产_yum keepalived_Elon的随笔的博客-CSDN博客 前言 高可用性和故障转移的方式? 采用哪些不同的方法来实现高可用性和故障转移? 以下是实现高可用性和故障转移的常见方法 1. 主从复制使用一个主服务器和多个从服务器来复制数据并提供冗余功能。如果主服务器发生故障一个从服务器可以成为新的主服务器并继续提供服务。 2. 负载均衡器使用专用硬件设备或软件来平衡负载并确保故障转移。这些设备可以检测服务器状态并在需要时将请求路由到其他可用服务器上。 3. 集群使用多个服务器来提供同一应用程序并且在其中任何一个节点发生故障时应用程序可以继续运行。集群包括多种类型例如高可用性集群、负载均衡集群和容器编排集群等。 4. DNS轮询: 使用DNS服务器返回不同的IP地址来平衡负载。如果其中一个服务器发生故障DNS服务器可以将请求路由到另一个服务器上。 5. 容器编排使用像Kubernetes、Docker Swarm或Apache Mesos等容器编排和管理工具来处理应用程序容器的高可用性和故障转移。这些工具可以自动检测故障并重新启动容器并在需要时将它们迁移到其他节点上。 需要注意的是以上方法都有自己的优点和限制因此您需要根据您的应用程序需求和基础架构环境选择最适合您的解决方案。同时在使用任何一种方法之前请务必备份所有相关数据并小心地测试和验证您的配置以确保它们可靠和稳定。 我采用MySQL主主keeplived并配置DNS轮询和负载均衡来实现高可用性和故障转移 由于我的应用程序需要使用多个IP地址和依赖于其他网络资源例如DNS记录网络数据云数据存储等等则可能需要采用不同的方法来实现高可用性和故障转移 因此我在Hadoop集群中配置有关keepalived的DNS轮询和负载均衡除此之外我还采用了MySQL主主keeplived的方式完成实现高可用性和故障转移。 原理Mysql—单点、主主、主备、主从模式原理 1图示MySQL单点、双主主主 、主备、主从架构方案思路图 2思路文字MySQL双主主主架构方案思路是: 1.两台mysql都可读写互为主备默认只使用一台masterA负责数据的写入另一台masterB备用 2.masterA是masterB的主库masterB又是masterA的主库它们互为主从 3.两台主库之间做高可用,可以采用keepalived等方案使用VIP对外提供服务 4.所有提供服务的从服务器与masterB进行主从同步双主多从; 5.建议采用高可用策略的时候masterA或masterB均不因宕机恢复后而抢占VIP非抢占模式 这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上尽可能减少主库宕机对业务造成的影响减少了主从同步给线上主库带来的压力 但是也有几个不足的地方: 1.masterB可能会一直处于空闲状态可以用它当从库负责部分查询 2.主库后面提供服务的从库要等masterB先同步完了数据后才能去masterB上去同步数据这样可能会造成一定程度的同步延时 架构的简易图如下: ​编辑 配置ip配置yum源配置Hadoop配置MySQL 一、添加 yum 源 1.1 下载 MySQL 5.7 的 rpm 包 wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 1.2 安装 rpm 包 sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm 安装完毕后会在 /etc/yum.repos.d/ 目录下生成两个 Repo 文件 mysql-community.repo mysql-community-source.repo 二、安装 MySQL 2.1 执行 yum 安装命令 sudo yum install mysql-server 在安装过程中会有提示确认信息一般一路输入 y 即可。 如果出现以下错误意味着在安装 MySQL 5.7 时缺少公钥文件。 请尝试使用以下命令导入 MySQL 的 GPG 密钥并重新执行安装命令 sudo rpm --import http://repo.mysql.com/RPM-GPG-KEY-mysql-2022 这将为您导入 MySQL 的 GPG 密钥作为验证 MySQL 资源的一种方式。 如果看到以下输出则表明安装成功 Complete! 三、启动 MySQL 3.1 启动 MySQL systemctl start mysqld 3.2 查看 MySQL 状态 systemctl status mysqld 3.3 重启 MySQL systemctl restart mysqld 3.4 停止 MySQL systemctl stop mysqld 3.5 设置开机启动 systemctl enable mysqld systemctl daemon-reload 四、登录 MySQL 4.1 获取 root 用户在首次登录时生成的临时密码 grep temporary password /var/log/mysqld.log 命令的输出会显示 root 用户在首次登录时生成的临时密码。例如 [Note] A temporary password is generated for rootlocalhost: eKgLclnYq1;K 其中 eKgLclnYq1;K 就是临时密码。 4.2 登录 MySQL mysql -u root -p 通过上述命令登录 MySQL 后需要修改 root 用户的临时密码否则会在执行部分命令时提示错误例如执行 show databases 命令会出现以下错误信息 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 4.3 修改 root 用户密码Password123$ 或 Pssword123 ALTER USER rootlocalhost IDENTIFIED BY Pssword123; 其中新密码 是您设置的新密码。请注意MySQL 密码策略要求密码长度大于 8 个字符包含大小写字母、数字及其它字符如标点符号。 注意mysql5.7默认安装了密码安全检查插件validate_password默认密码检查策略要求密码必须包含大小写字母、数字和特殊符号并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误如下图所示 通过msyql环境变量可以查看密码策略的相关信息 mysql show variables like %password%; 注意mysql5.7默认安装了密码安全检查插件validate_password默认密码检查策略要求密码必须包含大小写字母、数字和特殊符号并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误如下图所示 通过msyql环境变量可以查看密码策略的相关信息 mysql show variables like %password%; 4.4 查询 及修改禁用MySQL 密码策略 SHOW VARIABLES LIKE validate_password%; 命令的输出将会显示 MySQL 密码策略规则包括密码长度、大小写字母、数字及其它字符的要求等。例如 validate_password_policy密码策略默认为MEDIUM策略validate_password_dictionary_file密码策略文件策略为STRONG才需要validate_password_length密码最少长度validate_password_mixed_case_count大小写字符长度至少1个validate_password_number_count 数字至少1个validate_password_special_char_count特殊字符至少1个上述参数是默认策略MEDIUM的密码检查规则。 这意味着密码长度必须大于 8 个字符且密码中必须包含大小写字母、数字及至少一个特殊字符如 !、、#、$ 等。请根据实际情况设置新密码。 修改密码策略 在/etc/my.cnf文件添加validate_password_policy配置指定密码策略 # 选择0LOW1MEDIUM2STRONG其中一种选择2需要提供密码字典文件 validate_password_policy0 如果不需要密码策略添加my.cnf文件中添加如下配置禁用即可 validate_password  off 重新启动mysql服务使配置生效 systemctl restart mysqld 4.5 检查mysql源是否安装成功 yum repolist enabled | grep mysql.*-community.* 表示安装成功 4.6如果MySQL5.7无法远程连接 则添加远程登录用户以便于远程MySQL若还是无法连接可能CentOS7还要开启MySQL远程访问 默认只允许root帐户在本地登录如果要在其它机器上连接mysql必须修改root允许远程连接 我们需要增加root允许其他主机进行连接执行下面这段语句123456为连接密码%为任意主机就是任意主机可以通过用户名root 密码12345 进行连接你也可以指定只允许某IP的主机进行连接。 GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY Pssword123; 执行完上面的语句之后还不会立即生效还需要让mysql重新加载用户权限 flush privileges; 或者添加一个允许远程连接的帐户为了安全起见我添加一个新的帐户 mysql GRANT ALL PRIVILEGES ON *.* TO yangxin% IDENTIFIED BY Yangxin0917! WITH GRANT OPTION; flush privileges; 可以用任意一台电脑的navicat进行连接了如果还是无法连接检查是否防火墙屏蔽了mysql端口的远程访问权限。 如果是 CentOS7开启MySQL远程访问 CentOS7这个版本的防火墙默认使用的是firewall与之前的版本使用iptables不一样。按如下方便配置防火墙 1、关闭防火墙sudo systemctl stop firewalld.service 2、关闭开机启动sudo systemctl disable firewalld.service 3、安装iptables防火墙 执行以下命令安装iptables防火墙sudo yum install iptables-services 配置iptables防火墙打开指定端口 和CentOS6一样开放MySQL访问端口3306 修改防火墙配置文件 vi /etc/sysconfig/iptables  加入端口配置      -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重新加载规则 service iptables restart   5、设置iptables防火墙开机启动sudo systemctl enable iptables 6、之后的和CentOS6一样修改mysql库里的host 登录mysqlmysql -uroot -p use mysql; update user set host% where userroot and hostlocalhost; 记得一定还得修改密码因为这时密码已失效虽然本地还可以原密码登录可远程改了host后还是没法访问 UPDATE user SET passwordpassword(root) WHERE userroot;  flush privileges; 重启mysql远程就可以访问了 service mysqld restart; 完整的 MySQL 5.7 安装和登录教程到此结束。 五mysql主从复制简版 1,slave1和slave2安装mysql数据库已完成 1、主从服务器分别作以下操作 1.1、版本一致 1.2、初始化表并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-binmysql-bin   //[必须]启用二进制日志 server-id222      //[必须]服务器唯一ID默认是1一般取IP最后一段 3、修改从服务器slave: #vi /etc/my.cnf [mysqld] log-binmysql-bin   //[不是必须]启用二进制日志 server-id226      //[必须]服务器唯一ID默认是1一般取IP最后一段 2-3详细版配置 #vi /etc/my.cnf # mysqld.cnf [client] # 客户端设置编码字符集为UTF8mb4 default_character_setutf8mb4 [mysqld] # 服务端设置编码 default-storage-engineINNODB character-set-serverutf8mb4 collation-serverutf8mb4_general_ci # 服务唯一ID server-id9000 # 配置bin-log信息 # 日志文件名 log-binmaster-bin log_bin_index master-bin.index # 日志格式 binlog_formatrow # 日志保存天数 expire-logs-days7 # 需要同步的数据库 #binlog-do-dbcm_sync # 不需要同步的库 binlog-ignore-dbmysql binlog-ignore-dbsys binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema 主从配置除了idserver-id以外其余一样 4、重启两台服务器的mysql /etc/init.d/mysql restart 5、在主服务器上建立帐户并授权slave: #/usr/local/mysql/bin/mysql -uroot -pmttang   mysqlGRANT REPLICATI ON SLAVE ON *.* to mysync% identified by q123456; //一般不用root帐号“%”表示所有客户端都可能连只要帐号密码正确此处可用具体客户端IP代替如192.168.145.226加强安全。 6、登录主服务器的mysql查询master的状态 mysqlshow master status; ------------------------------------------------------------ | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | ------------------------------------------------------------ | mysql-bin.000004 |      308 |              |                  | ------------------------------------------------------------ 1 row in set (0.00 sec) 注执行完此步骤后不要再操作主服务器MYSQL防止主服务器状态值变化 7、配置从服务器Slave mysqlchange master to master_host192.168.145.222,master_usermysync,master_passwordq123456, master_log_filemysql-bin.000004,master_log_pos308;   //注意不要断开308数字前后无单引号。 Mysqlstart slave;    //启动从服务器复制功能 8、检查从服务器复制功能状态 mysql show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.2.222  //主服务器地址 Master_User: mysync   //授权帐户名尽量避免使用root Master_Port: 3306    //数据库端口部分版本没有此行 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置大于等于Exec_Master_Log_Pos Relay_Log_File: ddte-relay-bin.000003 Relay_Log_Pos: 251 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes    //此状态必须YES Slave_SQL_Running: Yes     //此状态必须YES ...... 注Slave_IO及Slave_SQL进程必须正常运行即YES状态否则都是错误的状态(如其中一个NO均属错误)。 以上操作过程主从服务器配置完成。 9、主从服务器测试 主服务器Mysql建立数据库并在这个库中建表插入一条数据 mysql create database hi_db; Query OK, 1 row affected (0.00 sec) mysql use hi_db; Database changed mysql  create table hi_tb(id int(3),name char(10)); Query OK, 0 rows affected (0.00 sec) mysql insert into hi_tb values(001,bobu); Query OK, 1 row affected (0.00 sec) mysql show databases; -------------------- | Database           | -------------------- | information_schema | | hi_db                | | mysql                | | test                 | -------------------- 4 rows in set (0.00 sec) 从服务器Mysql查询 mysql show databases; -------------------- | Database               | -------------------- | information_schema | | hi_db                 |       //IM here大家看到了吧 | mysql                 | | test          | -------------------- 4 rows in set (0.00 sec) mysql use hi_db Database changed mysql select * from hi_tb;           //查看主服务器上新增的具体数据 ------------ | id   | name | ------------ |    1 | bobu | ------------ 1 row in set (0.00 sec) 完成编写shell脚本用nagios监控slave的两个yes Slave_IO及Slave_SQL进程 用nagios监控slave的两个yesSlave_IO及Slave_SQL进程如发现只有一个或零个yes就表明主从有问题了发短信警报吧。 六mysql主主简版 要在Hadoop集群中实现MySQL主主复制您可以遵循以下步骤 1. 在Hadoop集群中安装两个以上且相同版本的MySQL数据库确保两个MySQL服务器都正常运行。 2. 配置MySQL的主主复制。这需要在每个MySQL服务器上进行以下配置更改 - 在my.cnf或my.ini文件中启用二进制日志记录binlog并且给它一个唯一的名称。 # vi /etc/my.cnf server-id1 log-binmysql-bin - 确保每个MySQL服务器都已正确配置了replication用户名和密码。 grant replication slave on *.* to repl% identified by password; Repl 用户名可修改为自己的 password密码可修改为自己的 3. 记下第一个MySQL服务器的IP地址并使用该地址在第二个MySQL服务器上设置主服务器。 CHANGE MASTER TO MASTER_HOST192.168.0.100, MASTER_USERrepl, MASTER_PASSWORDpassword, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POSxxxx; 其中MASTER_LOG_FILE和MASTER_LOG_POS参数应设置为第一个MySQL服务器上的binlog文件名和位置。 4. 现在在两个MySQL服务器上都启用复制。 start slave; 5. 测试MySQL主主复制是否正常工作。您可以执行一些插入、更新或删除操作并确保它们在两个MySQL服务器之间同步。 请注意以上步骤仅提供了一个简单的概述。在实践中您可能会遇到其他问题和挑战例如网络延迟、数据冲突等。因此在进行任何更改之前请务必备份所有相关数据并仔细测试您的MySQL主主复制配置。 七mysql主主详细 ## 配置MySQL主主同步 0配置防火墙以允许MySQL服务器之间的通信。 您需要开放MySQL服务器使用的TCP端口默认为3306并且最好只允许从其他MySQL服务器的IP地址访问该端口。 安装iptables防火墙 sudo yum install iptables-services 配置iptables防火墙打开指定端口 修改防火墙配置文件 vim /etc/sysconfig/iptables  加入端口配置      -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重新加载规则centos7命令 systemctl stop iptables.service  开启服务 [rootslave2 ~]# systemctl start iptables.service   关闭服务 [rootslave2 ~]# systemctl restart iptables.service  刷新重启服务 关闭防火墙 service iptables stop 设置iptables防火墙开机启动 sudo systemctl enable iptables 查看iptables防火墙状态 systemctl status iptables.service 0.1配置selinux 永久关闭selinux shell vi /etc/selinux/config SELINUXdisabled 临时关闭selinux 运行以下命令来检查当前Selinux状态 sestatus 如果当前正在运行Selinux则可以使用以下命令暂时禁用它 setenforce 0 您可以再次使用sestatus命令来验证Selinux状态是否已更改为“Permissive”。 sestatus 输出应显示为 SELinux status:                 disabled 或者 SELinux status:                 permissive 请注意这种方法只会临时禁用Selinux重启后将重新启动。如果您需要永久禁用Selinux则必须修改配置文件并重新启动系统以使更改生效。在永久禁用 Selinux 前建议您先了解其对系统安全的影响并采取其他措施来保护您的系统。 在Hadoop集群中安装两个以上且相同版本的MySQL数据库确保两个MySQL服务器都正常运行。 注意  主从服务器操作系统版本如centos7.6和位数要保持一致 多个数据库的版本要保持一致 多个数据库中的数据要保持一致 多个数据库中的server-id242或243不要要保持一致 2. 配置MySQL的主主复制。这需要在每个MySQL服务器上进行以下配置更改 在my.cnf或my.ini文件中启用二进制日志记录binlog并且给它一个唯一的名称。 # vi /etc/my.cnf server-id1 log-binmysql-bin 在my.cnf文件中启用二进制日志记录binlog和GTID功能。 server-id 1 log_bin /var/log/mysql/mysql-bin.log binlog_format ROW gtid_mode ON enforce_gtid_consistency ON 这将启用MySQL的全局事务标识符GTID功能并确保在主服务器之间进行复制时不会出现数据冲突。 - 确保每个MySQL服务器都已正确配置了replication用户名和密码。 grant replication slave on *.* to repl% identified by password; Repl 用户名可修改为自己的 password密码可修改为自己的 #vi /etc/my.cnf # mysqld.cnf [client] # 客户端设置编码字符集为UTF8mb4 default_character_setutf8mb4 [mysqld] # 服务端设置编码 default-storage-engineINNODB character-set-serverutf8mb4 collation-serverutf8mb4_general_ci # 服务唯一ID server-id9000  # 配置bin-log信息开启二进制日志功能名字可以随便取最好有含义比如项目名 log-binmaster-bin # 日志文件名 log_bin_index master-bin.index # 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存  binlog_cache_size8M # 日志格式 # 主从复制的格式(mixed,statement,row,默认格式是 statement)  binlog_formatrow # 日志保存天数   过期自动删除默认值为 0,表示不自动删除  expire-logs-days30  #下面很关键 # 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。 # 如:1062错误是指一些主键重复,1032 错误是因为主从数据库数据不一致 slave_skip_errors1062 # 作为从服务器时的中继日志  relay_logedu-mysql-relay-bin # log_slave_updates 表示 slave 将复制事件写进自己的二进制日志 log_slave_updates1 # 主键自增规则如下两个避免主从同步ID重复的问题 # 自增因子每次加2 auto_increment_increment2   # 自增偏移从1开始单数 auto_increment_offset1 # 启用MySQL的全局事务标识符GTID功能 # 并确保在主服务器之间进行复制时不会出现数据冲突。 gtid_mode ON enforce_gtid_consistency ON # 需要同步的数据库 #binlog-do-dbcm_sync # 不需要同步的库 复制过滤不需要备份的数据库MySQL库一般不同步 binlog-ignore-dbmysql binlog-ignore-dbsys binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema  Mysql主主快捷操作 参考文档MySQL主主数据同步_mysql主主同步_xyang0917的博客-CSDN博客https://blog.csdn.net/xyang81/article/details/52562571 Mysql1服务器和Mysql2服务器均进行 # 先重启一下服务 shell service mysqld restart # 分别登录到mysql1 和2 shell mysql -uroot -p Pssword123 # 创建数据库同步用户并授予相应的权限 只允许repl用户从192.168.xxx.xxx上登录 # 只允许repl用户从192.168.148.130上登录 此主机ip为192.168.148.129 Mysql1 grant replication slave, replication client on *.* to repl192.168.148.130 identified by Pssword123; # 只允许repl用户从192.168.148.129 上登录 此主机ip为192.168.148.130  # 也可使用repl192.168.148.% 只允许repl用户从192.168.148.xxx上登录 Mysql2 grant replication slave, replication client on *.* to repl192.168.148.129 identified by Pssword123; # 刷新授权表信息 Mysql1 flush privileges; Mysql2 flush privileges; # 只在从节点数据库中执行如下命令进行同步host为Master节点地址file和pos为上一步中主节点查看show master status的Master的信息( 主要查看binlog文件的position偏移和File日志文件的值 比如 ....003和311) # 执行完成后通过start slave启动mysql1为主MySQL2为从的同步 Mysql1 show master status; Mysql2change master to master_host192.168.148.130,master_userrepl, master_passwordPssword123, master_port3306, master_log_fileedu-mysql-bin.000003,master_log_pos311, master_connect_retry30; # 启动从节点开始工作接收主节点发送事件数据库数据变更的所有事件  Mysql2 start slave; # 此时再查看slave节点的状态 Mysql2 show slave status\G Mysql2 stop slave; # 只在从节点数据库中执行如下命令进行同步host为Master节点地址file和pos为上一步中主节点查看show master status的Master的信息( 主要查看binlog文件的position偏移和File日志文件的值 比如 ....003和311) # 执行完成后通过start slave启动mysql2为主mysql1为从的同步。 Mysql2 show master status; Mysql1change master to master_host192.168.148.129,master_userrepl, master_passwordPssword123, master_port3306, master_log_fileedu-mysql-bin.000002,master_log_pos317, master_connect_retry30; # 启动从节点开始工作接收主节点发送事件数据库数据变更的所有事件  Mysql1 start slave; # 此时再查看slave节点的状态 Mysql1 show slave status\G Mysql1 stop slave; slave启动失败问题总结 从服务器配置的结果一定是Slave_IO_Running 与 Slave_SQL_Running 状态都要为Yes1Change master to如果从库的Slave未启动Slave_IO_Running为NO。可能是主库是的master的信息有变化查看主库show master status;记录下File,Position字段假设为‘mysql-bin.000004’,98;在从库执行 mysqlstop slave;mysqlchange master to master_log_filemysql-bin.000004,master_log_pos669;mysqlstart slave;2SET global sql_slave_skip_countern;如果从库的slave_sql_running为NO。Err文件中记录Slave:Error Duplicate entry 1 for key 1 on query.....可能是master未向slave同步成功但slave中已经有了记录。造成的冲突可以在从库上执行set global sql_slave_skip_countern;跳过几步。再restart slave就可以了。3发现mysql slave服务器经常因为一些特殊字符或者符号产生的更新语句报错整个同步也会因此而卡在那最初的办法只是手动去出错的机器执行下面三条SQL语句跳过错误即可。 mysqlslave stop;mysqlset GLOBAL SQL_SLAVE_SKIP_COUNTER1; mysqlslave start; 通过slave stop,slave start即可解决。 slave start启动后又会自动停掉这时使用 change master重设主数据库信息的方式解决问题 #不细看仅参考#3.记下第一个MySQL服务器的IP地址并使用该地址在第二个MySQL服务器上设置主服务器。 Master配置 # 先重启一下服务 shell service mysqld restart   # 登录到mysql shell mysql -uroot -p # 创建数据库同步用户并授予相应的权限 mysql grant replication slave, replication client on *.* to repl192.168.1.206 identified by root123456; # 刷新授权表信息 mysql flush privileges; # 查看binlog文件的position偏移和File日志文件的值从机上需要用到mysql show master status; ##master_user和master_password在206上执行grant replication slave...创建的用户和密码  # master_log_file和master_log_pos在206上运行show master status;命令执行结果对应File和Position字段的值 mysql change master to master_host192.168.1.206,master_userrepl, master_passwordroot123456, master_port3306, master_log_fileedu-mysql-bin.000001, master_log_pos439, master_connect_retry30; CHANGE MASTER TO MASTER_HOST192.168.0.100, MASTER_USERrepl, MASTER_PASSWORDpassword, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POSxxxx; 其中MASTER_LOG_FILE和MASTER_LOG_POS参数应设置为第一个MySQL服务器上的binlog文件名和位置。 # 启动从节点开始工作接收主节点发送事件数据库数据变更的所有事件 mysql start slave; # 此时再查看slave节点的状态 mysql show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.206 Master_User: repl Master_Port: 3306 Connect_Retry: 30 Master_Log_File: edu-mysql-bin.000001 Read_Master_Log_Pos: 439 Relay_Log_File: edu-mysql-relay-bin.000002 Relay_Log_Pos: 287 Relay_Master_Log_File: edu-mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes 4. 在两个MySQL服务器上都启用复制。 start slave; 5. 测试MySQL主主同步是否正常工作。 您可以在两个MySQL服务器之间执行一些插入、更新或删除操作并检查它们是否在另一个服务器上得到了正确的重复。 请注意以上步骤仅提供了一个简单的概述。在实践中您可能会遇到其他问题和挑战例如网络延迟、数据冲突等。因此在进行任何更改之前请务必备份所有相关数据并仔细测试您的keepalived和MySQL主主同步配置。 Keepalived安装部署配置 1.1安装依赖 keepalived软件依赖 1需要准备的系统依赖包可能版本号会更新不是问题主要要有依赖包 gcc libnl-1.1.4-2.el6.x86_64 libnl-devel-1.1.4-2.el6.x86_64 libnfnetlink-1.0.0-1.el6.x86_64 libnfnetlink-devel-1.0.0-1.el6.x86_64 openssl-devel-1.0.1e-58.el6_10.x86_64 配置好yum源使用yum install安装对应的包。 另外需要 安装mysql5.7 jdk1.8 yum install gcc libnl libnl-devel libnfnetlink libnfnetlink-devel openssl-devel 2报错 postfix-2.10.1-6.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit) 我的mysql5.7依赖包是  usr/lib64/libmysqlclient.so.20 由于我安装的是 libmysqlclient.so.20而 Postfix 需要的是 libmysqlclient.so.18因此需要创建符号链接以使Postfix可以找到正确的库文件。 以下是一些可能的解决方法 确认已经安装了MySQL客户端库包运行以下命令来检查包是否已安装 rpm -qa | grep mysql 如果没有输出则表示未安装MySQL客户端库包。可以使用以下命令安装它 sudo yum install mysql-devel 创建符号链接使用以下命令创建符号链接 sudo ln -s /usr/lib64/mysql/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18 该命令将创建一个名为 libmysqlclient.so.18 的符号链接指向实际存在的 libmysqlclient.so.20 文件。 如果已经安装了MySQL客户端库包并且创建了符号链接但yum仍无法找到 libmysqlclient.so.18 文件则可能需要将库文件的路径添加到系统环境变量中。 以下是一些可能的解决方法 打开 /etc/ld.so.conf 文件 sudo nano /etc/ld.so.conf 在文件末尾添加以下行 include /usr/lib64/mysql/ 按 CTRLX 然后输入 Y 和 ENTER 来保存并退出文件。 更新共享库缓存 sudo ldconfig 现在应该可以使用yum命令成功安装Postfix以及其他依赖于 libmysqlclient.so.18 的软件包。 若还是不行 确认您已经安装了MySQL客户端库包运行以下命令来检查包是否已安装 rpm -qa | grep mysql 如果没有输出则表示未安装MySQL客户端库包。 如果输出四个包名安装则采用remove 包名卸载四个包 然后使用以下命令安装mysql客户端 sudo yum install mysql-devel 3.yum安装keepalived 11yum安装keepalived yum install -y keepalived 12查看版本 rpm -qa|grep keepalived [rootmaster ~]# rpm -qa|grep keepalived keepalived-1.3.5-19.el7.x86_64 13查看安装后目录 rpm -qc keepalived [rootmaster ~]# rpm -qc keepalived /etc/keepalived/keepalived.conf /etc/sysconfig/keepalived 14配置非抢占式有抢占式) vim   /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id wiilead11 #标识 可自定义 } vrrp_instance VI_1 { state BACKUP #从节点 interface eno16777736  #绑定虚拟IP的网络接口可通过ifconfig命令查看 virtual_router_id 51 #VRRP组名两个节点的设置必须一样以指明各个节点属于同一VRRP组 priority 150 # 非抢占式 两节点优先级一致 公平竞争 nopreempt #非抢占式标识 advert_int 1 #心跳间隔时间 两个节点设置必须一样 authentication { #设置验证信息两个节点必须一致 默认就行 可以不用更改 auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.148.128 #虚拟ip 两个节点保持一致 } 注以上内容分别配置到两台服务器router_id、interface、virtual_ipaddress 可自定义其余配置可直接使用 15keepalived启动与检查 启动keepalivedsystemctl start keepalived.service设置开机启动systemctl enable keepalived.service查看开机自启列表systemctl list-unit-files|grep enabled查看启动状态systemctl status keepalived.service [rootmaster ~]# systemctl status keepalived.service ● keepalived.service - LVS and VRRP High Availability Monitor Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled) Active: active (running) since 二 2023-05-30 02:22:50 CST; 24s ago Process: 4172 ExecStart/usr/sbin/keepalived $KEEPALIVED_OPTIONS (codeexited, status0/SUCCESS) Main PID: 4175 (keepalived) 1.2 编译安装keepalived解压及配置: tar -xvf keepalived-2.0.20.tar.gz mv keepalived-2.0.20 /usr/local/src/ cd /usr/local/src/keepalived-2.0.20 ./configure --prefix/usr/local/keepalived 编译安装: makemake install 1.3 配置keepalived服务 1.配置服务文件 mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/sbin/keepalived /usr/sbin cp /usr/local/src/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/keepalived 2.加keepalived服务 chkconfig --list |grep keepalived chkconfig --add keepalived chkconfig keepalived on 3.配置keepalived日志 keepalived的日志默认是输出到/var/log/messages中这样不便于查看。如何自定义keepalived的日志输出文件呢如果是用service启动的修改/etc/sysconfig/keepalived文件vi /etc/sysconfig/keepalived KEEPALIVED_OPTIONS-D -d -S 0 如果不是则启动的时候指定以上参数如 /usr/local/keepalived/sbin/keepalived -d -D -S 0 修改/etc/syslog.confRHEL6.8以后配置/etc/rsyslog.conf # keepalived -S 0 local0.*     /var/log/keepalived.log 重启syslog # RHEL 56 service syslog restart# RHEL 7 service rsyslog restart 注RHEL6.8也是按照RHEL7的方法来操作centos7实际上和rhel7一样配置 4.配置keepalived的MySQL故障转移master1(121)机器上的keepalived.conf配置:注下面配置中没有使用lvs的负载均衡功能所以不需要配置虚拟服务器virtual server cd /etc/keepalived/ mv keepalived.conf keepalived.conf.bak vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived vrrp_script chk_mysql_port { script /etc/keepalived/check_mysql.sh interval 2 weight -5 fall 2 rise 1 } vrrp_instance VI_1 { state MASTER     interface eth0 #指定虚拟ip的网卡接口 mcast_src_ip 192.168.1.121 #指定本服务器物理ip地址 virtual_router_id 130 #路由器标识MASTER和BACKUP必须是一致的取值1-255注意同一内网中不应有相同virtual_router_id的集群可以考虑使用vip的最后一位进行标示。 priority 101 advert_int 1          authentication {    auth_type PASS auth_pass 888888    } virtual_ipaddress {     192.168.1.130 #指定虚拟ip地址 } track_script {                chk_mysql_port              } } 编辑 /etc/keepalived/check_mysql.shvi /etc/keepalived/check_mysql.sh #!/bin/bash counter$(netstat -na|grep LISTEN|grep 3306|wc -l) if [ ${counter} -eq 0 ]; then /etc/init.d/keepalived stop fi # 修改chk_mysql.sh权限 chmod 755 /etc/keepalived/check_mysql.sh # 启动keepalived# service keepalived start Starting keepalived: [ OK ] master2(122)机器上的keepalived.conf配置 cd /etc/keepalived/ mv keepalived.conf keepalived.conf.bak vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived vrrp_script chk_mysql_port { script /etc/keepalived/check_mysql.sh interval 2             weight -5                  fall 2                  rise 1                } vrrp_instance VI_1 { state BACKUP interface eth0     mcast_src_ip 192.168.1.122 virtual_router_id 130   priority 99           advert_int 1          authentication {    auth_type PASS auth_pass 888888     } virtual_ipaddress {     192.168.1.130 } track_script {                chk_mysql_port              } } 编辑check_mysql.sh vi /etc/keepalived/check_mysql.sh #!/bin/bash counter$(netstat -na|grep LISTEN|grep 3306|wc -l) if [ ${counter} -eq 0 ]; then /etc/init.d/keepalived stop fi chmod 755 /etc/keepalived/check_mysql.sh 启动keepalived: # service keepalived start Starting keepalived: [ OK ] 2.其他补充 2.1 查看keepalived日志 tail -200f /var/log/keepalived.log 2.2 创建数据库、用户并赋权 --创建业务数据库create database demo; --创建业务用户create user jingyu% identified by jingyu; --赋予业务用户权限(默认grant insert,update,delete,select,alter,create,index,SHOW VIEW on demo.* to jingyu%; 此时应用侧已经可以使用命令mysql -ujingyu -p -h192.168.1.130或者客户端连接工具登录到demo数据库进行相关操作了。 [roottest01 ~]# mysql -ujingyu -p -h192.168.1.130 Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 27 Server version: 5.7.29-log MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type help; or \h for help. Type \c to clear the current input statement. jingyumysqldb 00:00:  [(none)] show databases; -------------------- | Database           | -------------------- | information_schema | | demo               | -------------------- 2 rows in set (0.01 sec)
http://www.tj-hxxt.cn/news/135978.html

相关文章:

  • 网站建设的基本步骤是做软件开发的网站有哪些
  • 办网站费用多少钱网站安全建设进展情况汇报
  • 大学校园门户网站建设多少钱一盒
  • 08 iis安装网站郑州市建设局官网
  • 建设微信网站需要服务器室内装修网站模板
  • 好玩的网页游戏链接优化系统
  • 无锡做网站设计中文图片转wordpress
  • 企业门户网站模板 下载亚马逊雨林资料
  • 设计新颖的网站建站手机端网站自动弹出营销qq
  • 大连商城网站建设石景山网站建设制作公司
  • 查看网站浏览量岳阳网站建设联系方式
  • 申请域名后怎样建设网站wordpress 4.0 中文版
  • 网站建设公司 - 百度广州app客户端开发
  • 怎么在word里做网站十大电商代运营公司
  • 苏州建网站制作费用多少钱宿州网站开发
  • 西安高端网站设计公司网站建设推广哪里好
  • 可以做装修效果图的网站有哪些创业加盟
  • 网站开发按钮图片素材优秀个人网站
  • 上海建设网站平台网站推广员怎么做
  • 如何做网站搜索功能产品设计考研学校推荐
  • 做网站采集什么文章好计算机网站开发实现总结
  • 关于asp_sql网站开发的书籍西地那非片的正确服用方法
  • 厦门网站开发培训济南做网站公司
  • 湖州建设局网站 项目验收流程深圳互联网企业名单
  • 网站推广营销效果政务网站网上调查怎么做
  • 婚纱摄影网站模版整站源码安徽省建设工程信息网官网是什么网站
  • 漯河网站建设ewordpress 图片链接下载
  • 北京天恒建设工程有限公司网站外包做网站的会给你什么
  • 建筑网官网大全旅游企业seo官网分析报告
  • 新网站怎么做论坛推广百度喜欢什么样的网站