zoukankan      html  css  js  c++  java
  • 大三时MySQL课程设计《MySQL集群的研究与实现》

    河南中医学院

    《MySQL数据库管理》课程设计报告

     题目:MySQL集群的研究与实现

     

     

     

    完成日期:  2012 年 12 月 31 日

     

    目  录

    1. 课程设计题目概述. 3

    2. 研究内容与目的. 3

    3. 研究方法. 4

    3.1研究方法……………………………………………………………………….. 4

    3.2实验方法………………………………………………………………………… 5

    3.3可行性分析..………………………………………………………………………….....  5

    4. 研究报告. 10

       4.1规划阶段………………………………………………………………………… 10

       4.2安装Mysql server……………………………………………………………… 10

       4.3安装Mysql Cluster……………………………………………………………. 11

       4.4配置管理节点…………………………………………………………………… 11

    4.5配置SQL节点…………………………………………………………………….13

    4.6 配置存储节点……………………………………………………………………13

    4.7启动MySQL Cluster…………………………………………………………….13

    4.8关闭MySQL Cluster……………………………………………………………..14

    4.9数据测试………………………………………………………………………… 14

    4.10安全关闭………………………………………………………………………. 14

    5. 测试报告/实验报告………………………………………………………………...15

    6. 课题研究结论……………………………………………………………………....22

    7. 总结…………………………………………………………………………………. 23

     

     

     


    1.课程设计题目概述

    MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

    MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。

    MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。

    目前,MySQL Cluster的 Cluster部分可独立于MySQL服务器进行配置。在MySQL Cluster中, Cluster的每个部分被视为1个节点。

    【关键字】:集群 MySQL Cluster

    2. 研究内容与目的

    研究目的:

    伴随着企业的成长,在业务量提高的同时,系统的访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。于是,人们希望通过几个中小型服务器组建集群,实现数据库的负载均衡,在需要更高数据库处理速度,我们只要简单地增加数据库服务器就可以得到扩展。

    数据库作为应用系统的核心,在企业的IT系统中起着非常重要的作用,单一设备根本无法保证系统的持续运行,发生系统故障,严重影响系统的正常运行,甚至带来巨大的经济损失。于是人们希望通过组建数据库集群,来保证系统的可用性,一旦某节点发生故障,系统会自动故障转移,实现系统的持续工作。

    企业的数据是企业的一些重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据的安全性,一旦发生丢失,很难再找回来,于是人们希望通过组建数据库集群,实现数据集群的冗余,通过多份数据来保证安全性。

    MySql是一种在目前被广泛使用着开源的免费的数据库,在中小型数据应用中,一般单台MySql服务器就能满足要求了,但对于大型WEB或其他应用下,巨量的数据存储访问,单台MySql服务器就不能很好地胜任了,而要使多台MySql服务器协同工作,不但要考虑MySql服务器集群结构,要考虑MySql服务器的HA热备问题,还要考虑各服务器之间负载均衡问题。

    研究内容:

    随着计算机应用的普及,数据库已经成为构建电子商务的关键服务之一。虽然集群技术很好地解决了提高访问容量的问题(如c009le等搜索门户网站),但数据库却成为网站的瓶颈,因为为了避免数据一致性问题,网站多采用单一的数据库服务器为所有网页服务提供数据,当访问量提高时,单个数据库服务器往往不堪重负。即使按照过去最优配置建设的服务器系统可能也无法承担访问量的爆炸性增长。因此,需要创建具有良好可扩展性和卓越性能价格比的网络数据库服务器,以满足快速增长的访问量和数据流量需求。

    这就需要使用特定的连接方式,将价格相对较低的硬件设备结合起来,同时也能提供高性能相当的任务处理能力,即数据库集群。

    采用Linux系统,可以提高客户工作站运行的可靠性和稳定性,获得高可用性服务器。在Linux系统下一种双机互备份工作方式的MySQL数据库集群的具体实现方案,实现了高可用性集群服务器。两个相对独立的应用在两台机器同时运行,但彼此均设为备份机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。

    3. 研究方法

    3.1研究方法

    实验法

    3.2实验方法

    (1)先使用三台主机搭建一个集群,分别作为管理节点、数据节点、SQL节点

    <1> 在主节点上创建数据库、新建数据表、插入数据

    <2> 在非主节点上查看主节点数据更新情况

    <3> 在非主节点上上创建数据库、新建数据表、插入数据

    <4> 在主节点上查看非主节点数据更新情况

    (2)使用三台主机搭建一个集群,其中一台作为管理节点,另两台分别作为数据节点和SQL节点

    <1> 在主节点上创建数据库、新建数据表、插入数据

    <2> 在非主节点上查看主节点数据更新情况

    <3> 在非主节点上上创建数据库、新建数据表、插入数据

    <4> 在主节点上查看非主节点数据更新情况

    3.3可行性分析

    (1)MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。

    (2)3台主机可以通过交换机连接到一起,只需要在连接前修改主机的IP地址,安装好需要安装的软件,这三台主机同时安装有ubuntu 11.04 。

    (3)在进行将5台安装有MySQL的主机搭建成一个集群的时候,只需要用到三台主机,只需要将其中的两台主机分别作为数据节点和SQL节点。

    (4)由于我们安装的都是虚拟机,可以在其中开启多台虚拟系统,所以又可以在这两台主机中做出更大的集群,但是出于当前计算机性能的问题的考虑,实现一台主机跑多个虚拟系统很吃力,所以实验中我们只做了将3台安装MySQL的主机搭建成一个小的集群。

    (5)集群实现的多种方案

    <1>MySQL Clustering(ndb-cluster stogare)
      MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。
      成本:
      (1) 节点服务器对RAM的需求很大,与数据库大小呈线性比例;
      (2) 最好使用千兆以太网络;
      (3) 还需要使用Dolphin公司提供的昂贵的SCI卡。
      优点:
      (1) 可用于负载均衡场合;
      (2) 可用于高可靠性场合;
      (3) 高伸缩性;
      (4) 真正的数据库冗余;
      (5) 容易维护。
      缺点:
      (1) 随着数据库的变大,对RAM的需求变得更大,因此成本很高;
      速度:
      (1) 几乎比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的  限制少)慢10倍。
      应用场合:
      (1) 冗余,高可靠性,负载均衡
    <2>MySQL / GFS-GNBD/ HA (Active/Passive)
      GFS是事务安全的文件系统。同一时刻可以让一个MySQL使用共享数据。
      成本:
      (1) 最多n台高性能服务器的成本,其中一个激活的,其他作为备份服务器。
      优点:
      (1) 高可靠性
      (2) 某种程度的冗余
      (3) 按照高可靠性进行伸缩
      缺点:
      (1) 没有负载均衡
      (2) 没有保证的冗余
      (3) 无法对写操作进行伸缩
      速度:
      (1) 单独服务器的2倍。对读操作支持得较好。
      应用场合:
      (1) 需要高可靠性的、读操作密集型的应用
     <3>MySQL / DRBD / HA (Active/Passive)
      DRBD可以提供这样的共享硬盘。DRBD可以被设置成事务安全的。同一时刻可以让一个MySQL使用共享数据。
      成本:
      (1) 最多n台高性能服务器的成本,其中一个激活的,而其他则作为备份服务器。
      优点:
      (1) 高可靠性;
      (2) 一定程度的冗余;
      (3) 以高可靠性名义来看是可伸缩的。
      缺点:
      (1) 没有负载均衡
      (2) 没有保证的冗余
      (3) 在写负载方面没有伸缩性
      速度:
      (1) 在读写方面相当于单独服务器
      应用场合:
      (1) 需要高可靠性、读操作密集型的应用
     <4>MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)
      考虑不同的读、写DB数据库连接的情况。可以使用一台主服务器用于写操     作,而采用n台从服务器用于读操作。
      成本:
      (1) 最多1台高性能写服务器,n台读服务器的成本
      优点:
      (1) 读操作的高可靠性;
      (2) 读操作的负载均衡;
      (3) 在读操作负载均衡方面是可伸缩的。
      缺点:
      (1) 无写操作的高可靠性;
      (2) 无写操作的负载均衡;
      (3) 在写操作方面无伸缩性;
      速度:
      (1) 同单独服务器;在读操作方面支持得较好
      应用场合:
      (1) 读操作密集型的、需要高可靠性和负载均衡的应用。
    <5>Standalone MySQL Servers(Functionally separated) (Active)
      多台功能分离的单独服务器,没有高可靠性、负载均衡能力,明显缺点太多,不予考虑。 (

    MySQL Cluster (集群)基本原理MySQL簇概述

    MySQL簇是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

    MySQL簇将标准的MySQL服务器与名为NDB的“内存中”簇式存储引擎集成了起来。在我们的文档中,术语NDB指的是与存储引擎相关的设置部分,而术语“MySQL簇”指的是MySQL和NDB存储引擎的组合。

    MySQL簇由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB簇的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于簇中这些组件的关系,参见下图:

     

    NDB是一种“内存中”存储引擎,它具有可用性高和数据一致性好的特点。

    能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但以簇层面上的存储引擎开始最简单。MySQL簇的NDB存储引擎包含完整的数据集,仅取决于簇本身内的其他数据。

    在最低的MySQL簇配置中,至少有三个节点,这三类节点分别是:

    <1>管理(MGM)节点:这类节点的作用是管理MySQL簇内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令ndb_mgmd启动的。

    <2> 数据节点:这类节点用于保存簇的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。没有必要有一个以上的副本。数据节点是用命令ndbd启动的。

    <3> SQL节点:这是用来访问簇数据的节点。对于MySQL簇,客户端节点是使用NDB簇存储引擎的传统MySQL服务器。典型情况下,SQL节点是使用命令mysqld –ndbcluster启动的,或将ndbcluster添加到my.cnf后使用mysqld启动。簇配置包括对簇中单独节点的配置,以及设置节点之间的单独通信链路。对于目前设计MySQL簇,其意图在于,从处理器的能力、内存空间和带宽来讲,存储节点是同质的,此外,为了提供单一的配置点,作为整体,簇的所有配置数据均位于1个配置文件中。

    4. 研究报告

     

    4.1 规划阶段

    计划建立有5个节点的MySQL CLuster体系,在这里将两个SQL节点和数据节点装在一起,因此需要用到3台机器,具体分配如下表:

    节点名

    操作系统

    Ip地址

    管理节点

    ubuntu 11.04

    10.0.31.49

    数据节点1

    ubuntu 11.04

    10.0.31.40

    数据节点2

    ubuntu 11.04

    10.0.31.41

    SQL节点1

    ubuntu 11.04

    10.0.31.40

    SQL节点2

    ubuntu 11.04

    10.0.31.41

    4.2 安装Mysql server

    $wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.59.tar.gz/from/http://mysql.cs.pu.edu.tw/

    $tar -xzvf mysql-5.1.59.tar.gz

    $cd mysql-5.1.59

    $./configure --with-charset=utf8 --with-collation=utf8_bin --with-extra-

    charsets=gbk,gb2312,big5,utf8,binary,ascii --prefix=/usr/local/mysql  --with-plugins=partition,ndbcluster

    $make

    $make install

    4.3 安装Mysql Cluster

    $wget

    http://dev.mysql.com/get/Downloads/MySQL-Cluster-7. 1/mysql-cluster-

    gpl-7.1.15a-linux-x86_64-glibc23.tar.gz/from/http://mysql.ntu.edu.tw/

    $tar -xzvf mysql-cluster-gpl-7.1.15a-linux-x86_64-glibc23.tar.gz

    $mv mysql-cluster-gpl-7.1.15a-linux-x86_64-glibc23.tar.gz

    /usr/local/mysql-cluster

    $cd /usr/local/mysql-cluster

    $groupadd mysql

    $useradd -g mysql mysql

    $passwd mysql

    $cd /usr/local/mysql-cluster

    $chown -R mysql:mysql .

    $scripts/mysql_install_db --user=mysql

    $cp -rp bin/ndb* /usr/local/bin/

    4.4 配置管理节点

    $cp support-files/ndb-config-2-node.ini /etc/ndb_mgmd.ini

    $vi /etc/ndb_mgmd.ini

    [ndbd default]

    NoOfReplicas= 2

    MaxNoOfConcurrentOperations= 10000

    DataMemory= 80M

    IndexMemory= 24M

    TimeBetweenWatchDogCheck= 30000

    DataDir= /usr/local/mysql-cluster/data

    MaxNoOfOrderedIndexes= 512

    #设置管理节点服务器

    [ndb_mgmd default]

    DataDir= /usr/local/mysql-cluster/data #MGM上保存日志的目录

    [ndb_mgmd]

    Id=1

    HostName= 10.0.31.49

    #设置存储节点服务器(NDB节点)

    [ndbd]

    Id= 2

    HostName= 10.0.31.40

    DataDir=/usr/local/mysql-cluster/data

    [ndbd]

    Id= 3

    HostName= 10.0.31.41

    DataDir=/usr/local/mysql-cluster/data

    #设置SQL节点服务器

    [mysqld]

    Id= 5

    HostName= 10.0.31.40

    [mysqld]#第二个SQL节点

    Id= 6

    HostName= 10.0.31.41

    # 选择一个未使用的端口

    [tcp default]

    PortNumber= 63132

    4.5 配置SQL节点

    [mysqld]

    basedir = /usr/local/mysql/

    datadir = /usr/local/mysql/data

    user = mysql

    port = 3306

    socket = /tmp/mysql.sock

    ndbcluster

    ndb-connectstring=10.0.31.40

    [MYSQL_CLUSTER]

    ndb-connectstring=10.0.31.41

    4.6 配置存储节点(NDB节点)

    $vi /etc/ndbd.cnf

    [mysqld]
    ndbcluster
    DataDir=/usr/local/mysql-cluster/data
    [MYSQL_CLUSTER]
    ndb-connectstring=nodeid=192.168.0.55

    4.7 启动MySQL Cluster

    首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器:

    (1)在管理节点服务器上,执行以下命令启动MGM节点进程:

    $/usr/local/bin/ndb_mgmd -f /etc/ndb_mgmd.ini  --configdir=/usr/local/mysq
    l-cluster
    $netstat -ntpl |grep ndb #检查是否成功
    (2)在每台存储节点服务器上,先执行以下命令:
    $/usr/local/bin/ndbd --initial --defaults-file=/etc/ndbd.cnf
    (3)运行以下命令启动SQL节点服务器:
    $mysqld_safe --defaults-file=/etc/my.cnf &
    4.8 关闭MySQL Cluster
    在MGM节点所在的机器上, Shell中简单地输入下述命令用来关闭Cluster:
    $/usr/local/bin/ndb_mgm -e shutdown
    运行以下命令关闭SQL节点的mysqld服务:
    $/usr/local/bin/mysqladmin -uroot shutdown
    4.9 数据测试
    (1)在主节点上新建一个数据库ClusterTest,新建数据表user,插入一行数据
    mysql> create database ClusterTest
    mysql> use ClusterTest
    mysql> create table user(nu mint , name varchar(50) engine=NDB);
    mysql> select * from user;
    (2)在非主节点上查看数据同步情况
    mysql> use ClusterTest
    mysql> select * from user;
    (3)在非主节点上新建一个数据库ClusterTest,新建数据表user,插入一行数据
    mysql> create database ClusterTest
    mysql> use ClusterTest
    mysql> create table user(nu mint , name varchar(50) engine=NDB);
    mysql> select * from user;

    (4)在主节点上查看数据同步情况

    mysql> use ClusterTest
    mysql> select * from user;

    4.10安全关闭

    要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:

    [db1~]root# /usr/local/mysql/ndb_mgm -e shutdown

    运行以下命令关闭SQL节点的mysqld服务:

    [db2~]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown

    5. 测试报告/实验报告

    实验报告

    (1)下载mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23.tar.gz安装包,选择服务器架构类型。

    (2)建立mysql用户组和mysql用户:#groupadd mysql   && useradd mysql -g mysql(3)解压压缩包并重命名:

    #tar zxvf mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23.tar.gz

    #mv mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23 mysqlc

    (4)进入mysqlc目录创建logs目录并更改mysqlc目录的所有者

    #cd mysqlc &&   mkdir logs

    #cd .. && chown -R mysql:mysql mysqlc

    截图如下:

     

    (5)建系统相关数据库以及表

    #scripts/mysql_install_db --user=mysql

    (6)配置管理节点

    #mkdir /var/lib/mysql-cluster && cd /var/lib/mysql-cluster

    # vim /var/lib/mysql-cluster/config.ini

    保存并退回出

    截图如下:

     

    (7)安装配置数据节点

    复制管理节点上的mysqlc整个目录到数据节点1上的/usr/local目录,重命名为mysql,确保mysql目录的所属用户和组为mysql。

    复制配置文件和启动脚本

    #cp support-files/my-medium.cnf /etc /my.cnf

    #cp support-files/mysql.server /etc /init.d/mysqld

    编辑配置文件

    #vim /etc /my.cnf

       增加[mysqld]下面的配置项

       保存后退出,在数据节点2上进行相同操作。

    截图如下:

     

    (8)启动管理节点

     

    (9)启动数据节点

     

     

    (10)启动SQL节点

     

    (11)在管理端查看集群当前状态

     

    (12)在节点2上启动数据节点和SQL节点

     

    测试报告

    (1)  主节点上创建ClusterTest数据库,user数据表,插入一条数据。

     

    (2)  在非主节点上查看数据同步情况:

     

    (3)  在非主节点上更新数据

     

    (4)  查看主节点上数据同步情况

     

     

    6. 课题研究结论

    MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。

    MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。在课程设计中实现了对一台计算机上进行创建数据库、新建数据表、插入数据,在其他计算机上均能查看这些信息的功能 。

    采用Linux系统,可以提高客户工作站运行的可靠性和稳定性,获得高可用性服务器。在Linux系统下一种双机互备份工作方式的MySQL数据库集群的具体实现方案,实现了高可用性集群服务器。两个相对独立的应用在两台机器同时运行,但彼此均设为备份机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。

    7. 总结

    随着网络技术的飞速发展,传统的服务器体系结构愈来愈不适应当前的需求,集群技术以其独特的优点很好地适应了当前网络发展的需要。而Linux以其开源代码模式成为当前集群研究的热点,本文正是基于这一点,介绍了MySQL集群的基本概念及其实现方式,依靠集群文件系统实现对系统中的所有文件、设备和网络资源的全局访问,突破了数据库容量的瓶颈限制。开源数据库开发商MySQL公司在2007 MySQL大会上宣布了最新的MySQL Cluster Carrier Grade Edition数据库DBT2基准测试结果。该基准测试结果显示了MySQL Cluster Carrier Grade Edition的高扩展性,使用8个节点的Cluster能达到每分钟100,000个事务处理。所以企业在网络规划资金欠缺的情况下,用免费的MySQL Cluster架设数据库集群,完全可以满足大流量的信息处理需求。

    MySQL数据库有很多优点

    扩展性和灵活性

    MySQL数据库服务器提供非常强大的扩展性,可以支持深度嵌入应用系统,大小只有1MB。也可以支持TB级别的数据仓库。平台灵活性一直以来是MySQL的特性,MySQL现在支持Linux,UNIX,和Windows。当然,MySQL的开源本性允许全面的自定义,这满足了那些需要添加特殊要求至数据库的需求。

    高性能

    独特的存储引擎架构使得数据库专业人员可以为特定的应用配置有针对性的MySQL数据库,由此,可以获得出人意料的性能结果。不管应用是高速的事务处理或是每天处理上亿查询大容量web站点,MySQL可以满足任何系统最急需的性能要求。使用高速加载工具,不同的内存缓存,全文索引,以及其它的性能加强机制,MySQL提供了现今关键业务系统需要的所有功能和特性。

    高可用

    坚若磐石的可靠性和持续的可用性是MySQL的特征,客户凭借MySQL确保24小时的服务。MySQL提供各种高可用的方案,高速的主/从复制配置,特殊集群服务器提供的即时切换,以及其它第三方供应商为MySQL数据库提供的独特高可用解决方法。

    强大的事务支持

    MySQL提供一个强大的事务处理引擎。特性包括完整的ACID(原子性,一致性,隔离性,持久性)事务支持,不限制的行级锁,分布式事务能力,多版本事务支持。另外,也确保数据完整性,方法是通过服务器强制的引用完整性,特殊事务隔离级别,即时死锁检测。

    Web和数据仓库能力

    MySQL事实上可用于高速web站点,因为它具备高性能的查询引擎,大量快速数据插入能力,有力地支持特定web方法如全文搜索。这些特性同样适用于数据仓库环境,这里的MySQL扩展至可以容纳T级别的数据年。其它的特性,如内存表,B-树索引和hash索引,以及高达80%压缩率的压缩表。使得MySQL完全可以用于web站点和商业智能应用。

    强大的数据保护

    保障公司数据资产安全是数据库管理员的日常工作之一。MySQL提供超乎寻常的安全特性,可以确保绝对的数据安全。在数据库安全认证方面,MySQL提供有力机制以确保只有授机用户可以访问数据库服务器,这样就可以有能力将用户阻止在客户端机器的一层。SSH和SLL的支持确保了连接的安全与可靠。粒度对象权限框架保证了用户可能看到他们被许可看的,强大的数据加密和解密功能确保了敏感数据不被未授权的查看。最后,MySQL和其它第三方软件提供商提供的备份和恢复工具允许完全的逻辑与物理备份以及按时间点恢复。

    全面的应用开发

    MySQL之所以成为全球最流行的开源数据库的原因之一是它针对每一个应用开发提供全面的支持。在数据库里,支持包括存储过程,触发器,函数,视图,游标,ANSI标准SQL,以及更多。对于嵌入式应用,可以使用嵌入式MySQL的插件库,几乎支持任意应用。MySQL提供连接器和驱动(ODBC,JDBC,等等)。这使得各种应用程序都可以使用MySQL作为首选的数据库管理服务器。不管是,PHP, Perl, Java, Visual Basic, 还是 .NET,MySQL都可满足应用开发人员成功构建数据库驱动信息系统的需求。

    管理方便

    MySQL有着异乎寻常的快速部署能力。软件从下载到安装完成平均时间少于是15分钟。对于以下任意平台都是: Microsoft Windows, Linux, Macintosh, 或是 UNIX。一旦安装,自管理特性,比如自动空间增长,自动重启,以及动态改变配置为数据库管理员大大减少了压力。MySQL提供了一套图形化管理和迁移工具,使得DBA可以管理,解决问题,以及从一个单一的工作台控制多个MySQL服务器。许多第三方的软件供应商提供工具,可以让DBA进行数据设计和ETL,完成数据库管理工作,任务管理,性能监控。

        开源自由和24*7支持

    很多公司对于是否完全采用开源软件还持怀疑态度。因为他们认为使用MySQL不可能会得到他们当前依赖的商业服务对关键业务提供的支持。事实上,这些怀疑是完全没有必要的,MySQL企业版提供一天24小时的支持。MySQL不是一个典型的开源项目,因为其全部的软件都是由Oracle所有,正因为如此,存在一个特殊的付费和支持模型,使得存在一个自由开源和得到支持受信软件的结合体。

    最低的总体拥有成本

    将当前数据库驱动的应用程序迁移至MySQL,或是在新的开发项目中使用MySQL,公司将可以体会到成本大大的降低了。将MySQL数据库服务器和使用廉价硬件扩展架构相结合,公司可以发现可以获得超乎想象的扩展性和性能,所有的这些花费远远少于使用水平扩展的方式。另外,可靠性和易维护性意味着MySQL可以让数据库管理员不用在解决性能问题或是宕机时间上耗费时间,而只需要关注更高级别的与商业业务有关的任务。

     

  • 相关阅读:
    (基于Java)编写编译器和解释器第5章:解析表达式和赋值语句第一部分(连载)
    (基于Java)编写编译器和解释器第6章:解释执行表达式和赋值语句(连载)
    (基于Java)编写编译器和解释器第9章:解析声明第一部分(连载)
    (基于Java)编写编译器和解释器第5章:解析表达式和赋值语句第二部分(连载)
    (基于Java)编写编译器和解释器第4章:符号表(连载)
    (基于Java)编写编译器和解释器第8A章:基于Antlr解析&解释执行Pascal控制语句(连载)
    (基于Java)编写编译器和解释器第7章:解析(Parsing)控制语句第一部分(连载)
    (基于Java)编写编译器和解释器第5A章:基于Antlr解析表达式和赋值语句及计算(连载)
    (基于Java)编写编译器和解释器第7章:解析(Parsing)控制语句第二部分(连载)
    (基于Java)编写编译器和解释器第8章:解释Pascal控制语句(连载)
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/2957323.html
Copyright © 2011-2022 走看看