MySQL是一个关系型数据库管理系统关系数据库,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

mysql分为关系型数据库和非关系型数据库

关系型:

库中的数据二维表的方式存储

概念:
关系:存储数据的表的表名
元组:表中的一条记录(一行是一条记录)
属性:表中的一个字段(一列是一个字段)                          

域:字段的取值范围
关键字:可以唯一标识一条记录的字段(一个或多个字段)     
关系模型:表和表之间的关系

关系性数据库遵循ACID
A:原子性
C:一致性
I:隔离性
D:持久性

原子性

原子性任务是一个独立的操作单元,是一种要么全部是,要么全部不是的原子单位性的操作。

一致性

一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。

隔离性

多个事务并发访问时,事务之间是隔离的,一个事物不应该影响其它事务运行效果。在并发环境中,当不同的事务同时操纵相同数据时,每个事务都有各自的完整数据空间,由并发事务所做的修改必须与其它并发事务所做的修改隔离。

并行是可能出行的问题:

.脏读

脏读发生在:当一个事务允许读取一个被其他事务改变但是未提交的状态时,这是因为并没有锁阻止读取,如上图,你看到第二个事务读取了一个并不一致的值,不一致的意思是,这个值是无效的,因为修改这个值的第一个事务已经回滚,也就是说,第一个事务修改了这个值,但是未提交确认,却被第二个事务读取,第一个事务又放弃修改,悔棋了,而第二个事务就得到一个脏数据。

.不可重复读

在同一事务中,对于同一分数据读到的结果不一致。比如:事务B在事务A提交前读到的结果,和提交后读到的结果可能不同。

持久性

一个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中。如果我们的系统突然受到系统崩溃或断电,那么所有未完成已提交的事务可能会重演。

关系型优点:                             缺点:

1. 容易理解                        1. 事务一致性(数据一致性),为了保证数据的完整,会带来额外的开销,导致性能降低

2. 可以借助于sql语句来进行数据的读写            2. 关系型数据库在高并发的读写请求下,会程序系统的性能瓶颈            

3. 便于维护表中的数据(主要用于保证数据完整、数据一致)              3. 可扩展性  4. 读写的时效性      5. 需要写复杂的SQL,甚至需要用多表联合查询

非关系型数据库(NoSQL)

通常NoSQL是以key-value的方式存储

特点:
性能相比关系型数据库更好,更易于扩展。

常用的关系和非关系数据库

1. oracle
支持众多平台,收费
应用场景:非互联网行业
特点:稳定,安全,重量级,收费

2. sql server
仅仅支持windows平台

3. mysql
应用场景:互联网企业
特点:体积小、运行速度块、稳定、开源

4. MariaDB
mysql的分支,完全兼容mysql

5. Redis
key-value
内存+磁盘
因为磁盘的限制,导致在处理海量数据的时候不好
适用场景:局部高并发的场景

8. memcached
key-value
内存
逐渐被redis取代

存储引擎

MYISAMMySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务
InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎
 

MyISAM存储的数据格式,包括三部分
MYD:保存表中的数据
frm:保存表结构
MYI:保存的索引信息

安装mysql(通用二进制格式)

(centos7下安装)

1.准备mysql的配置文件(不再提供配置文件模版)

[root@localhost ~]# mv /root/my.cnf /etc/  <<<此my.cnf模板是自定义的

说明:
安装位置:/usr/local/mysql
数据位置: /data/mysql/mysql3306/data
临时文件位置:/data/mysql/mysql3306/tmp
日志文件位置:/data/mysql/mysql3306/logs/mysql-bin
socket文件位置:/tmp/mysql3306.sock

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql
[root@localhost ~]# tar xf /root/mysql-5.7.-linux-glibc2.-x86_64.tar.gz 安装包可在官网直接下载
[root@localhost ~]# mv mysql-5.7.-linux-glibc2.-x86_64 /usr/local/
[root@localhost ~]# cd /usr/local
[root@localhost local]# ln -sv mysql-5.7.-linux-glibc2.-x86_64/ mysql
chown mysql.mysql mysql -R

 创建相关目录

[root@localhost local]# mkdir /data/mysql/mysql3306/{data,tmp,logs} -pv
chown -R mysql.mysql /data

初始化

[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql
说明:1. --user是用于指定以哪个用户的身份完成初始化工作(默认从配置文件中读取) 2. 数据目录下如果有文件,会导致初始化失败

初始化完成后,会在数据目录下生成一系列文件

[root@localhost local]# cd /data/mysql/mysql3306/data/

[root@localhost data]# ls
abc ib_logfile2
a.sh ibtmp1
auto.cnf innodb_status.1656
bak innodb_status.1657
db innodb_status.1665
db4 innodb_status.16762
dbq innodb_status.16895
error.log innodb_status.4740
gyf innodb_status.5819
hh mysql
ib_buffer_pool mysql.pid
ibdata1 performance_schema
ib_logfile0 slow.log
ib_logfile1 sys  <<<<说明初始化成功

说明:
error.log中保存了安装、启动、运行mysql过程中所出现的错误信息出,初始root密码也在其中

导出二进制

[root@localhost ~]# vim /etc/profile.d/mysql.sh
PATH=$PATH:/usr/local/mysql/bin/
export PATH
[root@localhost ~]# source /etc/profile

生成服务管理脚本

[root@localhost ~]# cd /usr/lib/systemd/system/
[root@localhost system]# vim mysql3306.service

[Unit]
  Description=mysql 3306 service

[Service]
  Type=forking
  ExecStart=/bin/bash /usr/local/mysql/support-files/mysql.server start
  ExecStop=/bin/bash /usr/local/mysql/support-files/mysql.server stop
  ExecRestart=/bin/bash /usr/local/mysql/support-files/mysql.server restart

[Install]
  WantedBy=multi-user.target

启动mysql

[root@localhost system]# systemctl start mysql3306.service 
[root@localhost system]# ss -tnl | grep 3306
LISTEN 0 70 ::: :::* <<<mysql启动端口为3306

 

mysql简单介绍及安装的更多相关文章

  1. Mysql数据库介绍、安装和配置文件

    Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C ...

  2. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

  3. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  4. CocoaPods的简单介绍及安装和使用

    CocoaPods的简单介绍及安装和使用   一.CocoaPods是什么? 当你开发iOS应用时,会常常使用到非常多第三方开源类库.比方JSONKit.AFNetWorking等等. 可能某个类库又 ...

  5. Nessus简单介绍与安装

    1.Nessus简单介绍与安装 1.Nessus简介 Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它.该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库.Ne ...

  6. Cloudera impala简单介绍及安装具体解释

    一.Impala简单介绍 Cloudera Impala对你存储在Apache Hadoop在HDFS,HBase的数据提供直接查询互动的SQL.除了像Hive使用同样的统一存储平台,Impala也使 ...

  7. 数据库---mysql的介绍和安装

    MySQL数据库 一.简介: mysql是数据库管理软件:套接字:服务端,客户端 支持并发:操作得是共享得数据 处理锁,数据安全,性能 用别人得软件,得照着别人得规范,组织自己得语法规则 二.概述: ...

  8. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  9. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

随机推荐

  1. 剑指Offer 44. 翻转单词顺序列 (字符串)

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...

  2. 535种使用JavaScript重新加载页面的方法

    除了location = location之外还有534中方法重新加载页面 location = location location = location.href location = window ...

  3. Ubuntu下math库函数编译时未定义问题的解决

    自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢? 后来上网查了下,发现是 ...

  4. vi常用命令及快捷键

    vi常用快捷键 1)移动光标 h :光标左移一个字符j :光标上移一个字符k :光标下移一个字符l :光标右移一个字符 0 :光标移至行首$ :光标移至行尾 H :光标移至屏幕首行M :光标移至屏幕中 ...

  5. 基于 Jenkins 构建持续集成任务

    1.1 Jenkins 配置使用心得 我是在windows10上安装的,安装过程很简单,从官网上下载下来msi安装包,双击执行就好了.安装程序完成后会自动打开http://localhost:8080 ...

  6. html框架以及属性字体应用

    今日java开课,下午老师讲解了java的第一节课,有关于html的框架,为了自己方便以后也会在日记中添加一些便签方便自己使用. 了解这一些之后老师发布的作业也让我对码代码有了更深的认知,码完作业之后 ...

  7. POJ3017 Cut the Sequence

    题意 Language:Default Cut the Sequence Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 122 ...

  8. Python垃圾回收详解:引用计数+标记清理+分代回收

    Python采用的是引用计数机制为主,标记-清理和分代收集两种机制为辅的策略. 1.引用计数 python中一切皆对象,所以python底层计数结构地就可以抽象为: 引用计数结构体{ 引用计数; 引用 ...

  9. BSS, DATA, TEXT, HEAP, STACK

    BSS, block start segment, static memory, to store the global data which are not initialized. DATA, d ...

  10. java volatile

    volatile可以保证变量的可见性 当一个变量定义为volatile后,此变量对所有的线程具有可见性.这里的可见性是指当一个线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的. 每次使用v ...