Linux:mysql数据库入门简介及安装配置

一、 MYSQL数据库入门简介

        MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下公司。MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

        MySQL数据库主要用于存储各类信息数据,例如:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息、系统报表等等。
        MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
        关系数据库管理系统(Relational Database Management System,RDBMS),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的关系型数据库软件有MYSQL、Mariadb、Oracle、SQL Server、PostgreSQL、DB2等。)

mysql

RDBMS数据库的特点如下:
 数据以表格的形式出现;
 每行记录数据的真实内容;
 每列记录数据真实内容的数据域;
 无数的行和列组成一张表;
 若干的表组成一个数据库;

       

       目前主流架构LAMP(Linux+Apache+MySQL+PHP),MySQL更是得到各位IT运维、DBA的青睐,虽然MySQL数据库已被Orcacle公司收购,不过好消息是原来MySQL创始人已独立出来自己重新开发了MariaDB数据库,开源免费,目前越来越多的人开始尝试使用。MariaDB数据库兼容MySQL数据库所有的功能和相关参数。
        MySQL数据库运行在服务器前,需要选择启动的引擎,好比一辆轿车,性能好的发动机会提升轿车的性能,从而启动、运行更加的高效。同样MYSQL也有类似发动机引擎,这里称之为MYSQL引擎。
        MYSQL引擎包括:ISAM、MyISAM、InnoDB 、MEMORY、CSV、BLACKHOLE、ARCHIVE、PERFORMANCE_SCHEMA、Berkeley、Merge、Federated、Cluster/NDB等,其中MyISAM、InnoDB使用最为广泛。

        性能总结:MyISAM MySQL 5.0之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务;InnoDB事务型数据库的首选引擎,支持ACID事务,ACID包括:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在执行事务过程无法保证数据的正确性。
                          MYSQL5.5之后默认引擎为InnoDB,Innodb支持行级锁定, 支持事物、外键等功能。
        MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
什么是数据库事务?
事务(transaction)是由指逻辑上对数据的的一组操作,这组操作要么一次全部成功,如果这组操作全部失败,是不可分割的一个工作单位。
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理 insert,update,delete 语句,一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
     BDB源自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性;
     Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MySQL 重新启动时丢失;

Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?
        MyISAM类型的数据库表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,不支持外键,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。
       InnoDB提供事务支持事务、外部键、行级锁等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,可以考虑使用InnoDB引擎。

二、Mysql数据库安装方式

MySQL数据库安装方法有两种,一种是yum/rpm通过YUM源在线安装,另外一种是通过源码软件编译安装。
(1) YUM方式安装MYSQL方法,执行命令:
yum  install  mysql-server  mysql-devel  mysql-libs  -y  #CentOS6.x YUM安装
yum  install  mariadb-server mariadb   mariadb-libs -y  #CentOS7.x YUM安装
(2) 源码安装MYSQL5.5.20方法,通过cmake、make、make install三个步骤实现。
wget http://files.directadmin.com/services/all/mysql/5.5.20/MySQL-server-5.5.20-1.linux2.6.i386.rpm
tar -zxf mysql-5.5.20
yum  install  gcc c ncurses-devel cmake libaio bison gcc-c++  git  ncurses-devel ncurses -y

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
make install

三、Mysql源码安装参数详解

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55   #Cmake预编译;

-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           编译;
make install         安装

1、bin目录:用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。
2、data目录:用于放置一些日志文件以及数据库。
3、include目录:用于放置一些头文件,如:mysql.h、mysql_ername.h等。
4、lib目录:用于放置一系列库文件。
5、share目录:用于存放字符集、语言等信息。
6、my.ini:是MySQL数据库中使用的配置文件。
7、my-huge.ini:适合超大型数据库的配置文件。
8、my-large.ini:适合大型数据库的配置文件。
9、my-medium.ini:适合中型数据库的配置文件。
10、my-small.ini:适合小型数据库的配置文件。
11、my-template.ini:是配置文件的模板,MySQL配置向导将该配置文件中选择项写入到my.ini文件。
12、my-innodb-heavy-4G.ini:表示该配置文件只对于InnoDB存储引擎有效,而且服务器的内存不能小于4GB。
将源码安装的Mysql数据库服务设置为系统服务,可以使用chkconfig管理,并启动MYSQL数据库。

cd /usr/local/mysql55/
\cp support-files/my-large.cnf /etc/my.cnf
\cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
mkdir -p  /data/mysql
useradd  mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql55/
ln  -s  /usr/local/mysql55/bin/* /usr/bin/
service  mysqld  restart


2
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容