zoukankan      html  css  js  c++  java
  • CentOS-7.3 MySQL数据库入门简介及源码编译安装MySQL服务

    CentOS-7.3 MySQL数据库入门简介及源码编译安装MySQL服务

    Mysql数据库入门及简介

    MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

    MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

    MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

    RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有OracleSQL Server等。

    RDBMS的特点:

    1) 数据以表格的形式出现

    2) 每行为各种记录名称

    3) 每列为记录名称所对应的数据域

    4) 许多的行和列组成一张表单

    5) 若干的表单组成database

    对应目前主流的LAMP(Linux+Apache+Mysql+PHP)架构来说,Mysql更是得到各位IT运维、DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始人已独立出来自己重新开发了一个MariaDB,而且使用的人数越来越多。而且MariaDB兼容mysql所有的功能和相关参数。

    Mysql数据库引擎详解

    MySQL是我们比较常用的一种数据库软件。它有着诸多的优点,如开源的,免费的等等。其实它还有一个很好的特点,那就是有多种引擎可以供你选择。如果赛车手能根据不同的路况,地形随手更换与之最适宜的引擎,那么他们将创造奇迹。

    MyISAM MySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务

    InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎

    BDB源自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性;

    Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失;

    Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?

    MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。

    InnoDB提供事务支持事务,外部键等高级 数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。

     Mysql数据库应用索引

    索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引不是万能的,索引可以加快数据检索操作,但会使数据修改操作变慢。每修改数据记录,索引就必须刷新一次。常见索引类别如下:

    1) 普通索引

    普通索引(由关键字 KEY 或 INDEX 定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column =)或排序条件(ORDER BY column)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。

    2) 唯一索引

    普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。

    如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE 把它定义为一个唯一索引。这么做的好处:一是简化了 MySQL 对这个索引的管理工作,这个索引也因此而变得更有效率;二是 MySQL 会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;如果是,MySQL 将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。

    3) 主索引

    在前面已经反复多次强调过:必须为主键字段创建一个索引,这个索引就是所谓的“主索引”。主索引与唯一索引的唯一区别是:前者在定义时使用的关键字是 PRIMARY 而不是 UNIQUE。

    4) 外键索引

    如果为某个外键字段定义了一个外键约束条件,MySQL 就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。

    5) 复合索引

    索引可以覆盖多个数据列,如像 INDEX (columnA, columnB) 索引。这种索引的特点是 MySQL 可以有选择地使用一个这样的索引。如果查询操作只需要用到 columnA 数据列上的一个索引,就可以使用复合索引 INDEX(columnA, columnB)。不过,这种用法仅适用于在复合索引中排列在前的数据列组合。比如说,INDEX (A,B,C) 可以当做 A 或 (A,B) 的索引来使用,但不能当做 B、C 或 (B,C) 的索引来使用。

    MySQL数据库的安装步骤:

    安装步骤:

    1、下载MySQL的软件包:

    先进入一个下载目录:

    cd /hx/packages/

    wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz    //下载mysql软件包

    2、解压下载好的软件包然后进入目录

    tar xzf mysql-5.5.20.tar.gz        //解压

    3、yum安装一下mysql服务所需要的环境,cmake、gcc、c++等开发环境

     yum install apr-devel apr-util-devel  gcc c ncurses-devel cmake libaio bison gcc-c++  git  -y

    4、编译源码包和安装(在软件包目录内执行):参数根据需要自行添加

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
    -DMYSQL_DATADIR=/data/mysql
    -DSYSCONFDIR=/etc
    -DMYSQL_USER=mysql
    -DMYSQL_TCP_PORT=3306
    -DWITH_XTRADB_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DENABLED_LOCAL_INFILE=1
    -DWITH_EXTRA_CHARSETS=1
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DEXTRA_CHARSETS=all
    -DWITH_BIG_TABLES=1
    -DWITH_DEBUG=0  &&   make -j4 && make -j4 install

    --------------------------------------------------------------------------------------------------------

    Mysql源码编译参数详解:
    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55          #####  Cmake预编译,prefix=   安装路径;
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock MYSQL Socket          ##### 通信文件位置;
    -DMYSQL_DATADIR=/data/mysql                    #####  MYSQL数据存放路径;
    -DSYSCONFDIR=/etc                        #####  配置文件路径;
    -DMYSQL_USER=mysql MYSQL                 ##### 运行用户;
    -DMYSQL_TCP_PORT=3306                      #####  MYSQL监听端口;
    -DWITH_XTRADB_STORAGE_ENGINE=1                #####  开启xtradb引擎支持;
    -DWITH_INNOBASE_STORAGE_ENGINE=1              #####  开启innodb引擎支持;
    -DWITH_PARTITION_STORAGE_ENGINE=1              #####  开启partition引擎支持;
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1            #####  开启blackhole引擎支持;
    -DWITH_MYISAM_STORAGE_ENGINE=1              #####  开启MyISAM引擎支持;
    -DWITH_READLINE=1                           #####  启用快捷键功能;
    -DENABLED_LOCAL_INFILE=1                #####  允许从本地导入数据;
    -DWITH_EXTRA_CHARSETS=1                #####  支持额外的字符集;
    -DDEFAULT_CHARSET=utf8               #####  默认字符集UTF-8;
    -DDEFAULT_COLLATION=utf8_general_ci            #####  检验字符;
    -DEXTRA_CHARSETS=all                  #####  安装所有扩展字符集;
    -DWITH_BIG_TABLES=1                  #####  将临时表存储在磁盘上;
    -DWITH_DEBUG=0                     ##### 禁止调试模式支持;
    make -j4  && make -j4 install                ##### 启用4线程同时编译安装

    -----------------------------------------------------------------------------------------------

    5、配置mysql服务:

           copy一个mysql的配置文件和启动文件、创建开机启动项及创建数据目录/data/mysql和用户(mysql)

     

    6、配置MySQL数据库参数

     /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/ 

     

    7、创建mysql的链接文件、目录

     ln -s /usr/local/mysql55/bin/* /usr/bin/

     

    8、启动mysql服务并查看mysql服务的进程

     

    9、登录mysql数据库测试是否正常登录

     

    10、MySQL服务安装成功了!!

     基本操作命令在后面文章中讲解。。。。。

  • 相关阅读:
    100以内整数四则运算
    软件工程基础
    使用python分析微信好友
    数据库实践
    爬虫
    Python编程预测比赛成绩
    自己的第一个网页
    科学计算与可视化
    对小学生四则运算用界面呈现
    在使用memory_profiler检测python代码运行时内存出现解码错误
  • 原文地址:https://www.cnblogs.com/fengdejiyixx/p/12391692.html
Copyright © 2011-2022 走看看