feature image

MySQL

4 Posts

为MySQL数据库集群部署MHA高可用

什么是MHA MHA(Master High Availability)是用于提高数据库集群可用性的方案,基于虚拟IP技术,可以实现在Master故障时,在30s内实现故障转移并确保数据一致性。可以理解为MHA就是作用于数据库集群的KeepAlived。 MHA工作原理 MHA的组成 MHA由MHA Manager和MHA Node组成,其中Manager相当于服务端,Node相当于客户端; Manager可以部署在Master或Slave机器上,也可以单独的部署在一台机器上;一般建议部署在一台单独的机器上,因为Manager是用于探测数据库实例是否在线和进行故障转移的核心程序,如果部署在Master上,一旦Master机器报销,整个数据库集群的不再可以;另外,如果部署在Slave机器上,那么这台机器就不能够被提升为Master。 Node需要部署在所有MySQL数据库实例的机器上。 MHA故障转移流程 * Manager会每隔一段时间(可以由用户在配置文件中指定)对主库进行一次探测; * 如果Manager检测到Master故障,会执行

MySQL备份

Binlog日志 Binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息。 例如,更改数据库库表和更改表内容的SQL语句都会记录到binlog里,但是对库表等内容的查询则不会记录到日志中。 Binlog记录的语句类型: * DML:insert update delete * DDL:create drop alter truncate * DCL:grant revoke 查看MySQL是否开启的Binlog功能 登录数据库后,查看binlog相关参数: mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename

单机部署LNMP架构

什么是LNMP架构 LNMP是常见的单机架构,通常用于业务的早期阶段或是个人业务,如博客;LNMP即 Linux系统+Nginx Web server+Mysql数据库+PHP后端程序的统称; LNMP架构原理 LNMP工作流是的当用户通过浏览器访问Web服务时,其静态请求交由Nginx Web Server来处理,而动态请求则由Nginx通过FastCGI接口转发给本机的后端程序,即php-fpm进程进行解析; 如果该请求需要读取MySQL数据库,则php-fpm会继续向后读取MySQL数据库,并一层一层地返回数据,最后由Nginx将数据返回给用户 部署LNMP环境 创建Nginx运行用户 其实这部并非必要,yum安装Nginx的话安装过程中会自动创建一个Nginx用户,但是我习惯了用www用户来跑Web Server,所以还是创建一个。 groupadd www -g 500 useradd www -s /sbin/nologin -M -u 500 -g 500 之后可以用id命令来检查一下用户创建是否成功。 id ww