首页 » 网站建设 » phpmysql主从同步技巧_MySQL 主从做事器数据库同步的实现

phpmysql主从同步技巧_MySQL 主从做事器数据库同步的实现

访客 2024-11-08 0

扫一扫用手机浏览

文章目录 [+]

数据库安全的紧张威胁

就目前来看,对数据安全的威胁成分紧张有以下几个方面:

phpmysql主从同步技巧_MySQL 主从做事器数据库同步的实现

(1)人为成分:用户或管理员误删除某些数据或全体数据表、利用弱口令和数据库缺点的配置。

phpmysql主从同步技巧_MySQL 主从做事器数据库同步的实现
(图片来自网络侵删)

(2)数据库系统漏洞:缓冲区溢出等数据库软件漏洞或SQL注入漏洞等运用程序逻辑漏洞。

(3)第三方恶意插件:如病毒和一些木马程序所引起的插件。

(4)硬件成分:保存数据库的磁盘介质或磁盘掌握器涌现了故障。

(5)环境成分:断电或不正常关闭了MySQL做事器等。

数据库同步的方案

如果利用纯手动的办法来备份数据,不但繁琐,而且随意马虎涌现缺点。
因此须要一种自动办法来对数据库操作进行自动备份还原。
对主从做事器数据库进行同步复制,可以在MySQL数据库实现Cluster。
MySQLCluster是由MySQL官方供应的集群支配方案,紧张供应以下几种方案:

(1)高可用性:主理事器故障后可以实现自动切换到后备做事器,只管部分硬件和软件不可预知地会发生故障,但全体系统的做事必须担保每天24小时每星期7天可用,从而担保数据不丢失和系统一直机。

(2)可伸缩性:可方便通过脚本增加DB做事器,当数据库做事的负载增长时,系统能被扩展来知足需求,且不降落做事质量。

(3)负载均衡:支持手动将公司的数据要求自由切换或指定配置到其它做事器,相互之间可以负载均衡,显著提升数据库的性能,提高设备利用率。
MySQLCluster支持通过自动分片支持读写扩展,通过实时备份冗余数据来实现可用性最高的方案的有力担保。
通过数据库实现Cluster,不但提高了MySQL的安全性,而且还减轻了DBA大量的事情。

MySQL同步实现步骤

为了实现主从做事器数据库的复制或是同步功能,必须由从做事器读取主理事器上的二进制日志(binarylog)来更新自己的数据库。
而要实现这一步,则该当将主理事器记录数据库的所有变革到一个二进制日志中。
这些记录称之为二进制日志事宜(binarylogevents)。
假设环境如下:

2台机器linuxcentOS;ip:192.168.1.1;ip:192.168.1.2;分别安装了mysql5.1;将mysql默认配置文件(/usr/share/doc/MySQL-server-community-version下my-medium.cnf)拷贝至/etc目录下,命名为my.cnf。

先以192.168.1.1为主数据库,192.168.1.2为从数据库。
将主数据库的数据库打包拷贝到从数据库,同步主从数据库的数据。

(1)tar-cvf/data/db.tar/var/lib/mysql/db备份主数据库数据。

(2)scp/data/db.tarroot@192.168.1.2:/root发送至从数据库。

(3)cp/root/db.tar/var/lib/mysql/db.tar拷贝至从数据库。

(4)tar-xvfdb.tar解压。

然后为master192.168.1.1的my.cnf增加如下,配置:

binlog-do-db=db须要同步的数据库名;logbin=/path/logname天生的log位置;

binlog-ignoredb=mysql忽略的数据库名。

接着在mysql中增加用于读取数据文件的专用用户语句如下:

GRANTREPLICATIONSLAVEONdb.TO'rep'@'192.168.1.2'IDENTIFIEDBY'password';

flushprivileges刷新权限

servicemysqlrestart重启主理事器

mysql下面来配置从做事器。
修正从做事器my.cnf文件增加如下配置:

server-id=2这里把稳不要和主理事器相同

master-host=192.168.1.1主理事器IP

master-user=rep前面配置数据库用户

master-password=password用户密码

master-port=3306同步端口

master-connect-retry=0重连韶光

replicate-do-db=db须要同步的数据库

replicate-igonre-db=mysql须要忽略的数据库

配置完成后登录mysql

启动从数据库读取进程slavestart

然后查看slave状态show_slave_status\G

把稳显示结果中Slave_IO_Running,Slave_SQL_Running

如果都为yes则表示启动成功,如果为no

则在主理事器(192.168.1.1)中输入命令:showmasterstatus;

得到结果:File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

+------------------+----------+-------------------+------------------+

|log.000031|75|db|mysql|把稳查看个中file和position是否和showslavestatus中的master_log_file和master_log_pos匹配。
如果不一致则在从数据库(192.168.1.2)中实行

以下语句,以设定读取的日志和位置

1.slavestop;

2.changemastertomaster_log_file='log.000031',master_log_pos=75;

3.slavestart;

实行完毕后,再次查看

showslavestatus;

Slave_IO_Running=yes,Slave_SQL_Running=yes

则表示启动成功。

测试一下,然后在主数据库做事器插入一条数据,如果从数据库也增加了,则证明配置成功。

剖析目前Internet上后台运用数据库的利用情形,可以创造MySQL的Free特点及其在Unix平台上和Apache、PHP结合的精良性能表现,将会成为个人网站和中小型商业网站首选项。
其霸占的市场份额也不断趋于上升,并且考虑将高可用性即HA(HighApplicability)作为他们的优选办理方案,而成为人们可以利用MySQLreplication功能供应一种高性价比的HA办理办法。

相关文章