Mysql相关知识运用一:概念篇

参考网址

浏览目录

  • 概述
  • 数据库的特点
  • 数据库的分类
  • 选择MySQL的理由 & MariaDB 介绍
  • 下载及安装

一、概述

1、数据(data)

存储在表中的信息就叫做数据.

2、数据库(Database,简称DB)

数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据。更简单的形象理解,数据库和我们生活中存放杂物的仓库性质一样,区别只是存放的东西不同。

3、数据库表(table)

数据表是关系数据库中一个非常重要的对象,是其它对象的基础,也是一系列二维数组的集合,用来存储、操作数据的逻辑结构。
根据信息的分类情况。
一个数据库中可能包含若干个数据表,每张表是由行和列组成,记录一条数据,数据表就增加一行,每一列是由字段名和字段数据集合组成,列被称之为字段,
每一列还有自己的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等。

4、数据库系统有3个主要的组成部分

1).数据库(Database System):用于存储数据的地方。

2).数据库管理系统(Database Management System,DBMS):用户管理数据库的软件。

3).数据库应用程序(Database Application):为了提高数据库系统的处理能力所使用的管理数据库的软件补充。

5、数据库的发展史(五个阶段)

1).文件系统
  数据库系统的萌芽阶段,通过文件来存取数据.
文件系统是数据库系统的萌芽阶段,出现在上世纪五六十年代,可以提供简单的数据存取功能,但无法提供完整、统一的数据管理功能,例如复杂查询等。所以在管理较少、较简单的数据或者只是用来存取简单数据,没有复杂操作的情况下,会使用文件系统
   
2).层次型数据库
  数据库系统真正开始阶段,数据的存储形式类似树形结构,所以也叫树型数据库.
   
3).网状数据库
  数据的存储形式类似网状结构.
从二十世纪六十年代开始,第一代数据库系统(层次模型数据库系统、网状模型数据库系统)相继问世,它们为统一管理和共享数据提供了有力的支撑
在这个阶段,网状模型数据库由于它的复杂、专用性,没有被广泛使用。而在层次模型数据库中,IBM公司的IMS(Information Management System,信息管理系统)层次模型数据库系统则得到了极大的发展,一度成为最大的数据库管理系统,拥有巨大的客户群

4).关系型数据库
二十世纪七十年代初,关系型数据库系统开始走上历史舞台,并一直保持着蓬勃的生命力.关系型数据库系统使用结构化查询语言(Structured Query Language,SQL)作为数据库定义语言DDL和数据库操作语言DML

5).面向对象数据库(非关系型数据库)
面向对象的方法和数据库技术结合起来,可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致,并且能够有效的为面向对象程序提供更好的数据库支撑

二、数据库的特点

⑴ 实现数据共享
 数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
⑵ 减少数据的冗余度
 同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性.
⑶ 数据一致性和可维护性,以确保数据的安全性和可靠性
 主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;
      ②完整性控制:保证数据的正确性、有效性和相容性;
      ③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用
⑷ 故障恢复
  由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。
三、数据库的分类
在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。

1 、关系型数据库介绍

(1) 关系型数据库 : 是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。

(2) 目前主流的关系型数据库:MySQL、Oracle 、 Sql server、DB2 。。。

主流数据库介绍

2 非关系型数据库介绍

(1)非关系型数据库诞生背景

非关系型数据库也被成为NoSQL数据库,NOSQL的本意是“Not Only SQL”.而不是“No SQL”的意思,因此,NoSQL的产生并不是要彻底地否定非关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

     随着互联网Web2.0网站的兴起,传统的关系型数据库在应付web2,0网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。 

例如:传统的关系型数据库IO瓶颈、性能瓶颈都难以有效突破,于是出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。NOSQL(非关系型)类的数据就是在这样的情景下诞生并得到了非常迅速的发展

(2) NOSQL非关系型数据库小结:
  1、NOSQL不是否定关系数据库,而是作为关系数据库的一个重要补充
  2、NOSQL为了高性能、高并发而生,但是要求对数据一致性要求不能高
  3、NOSQL典型产品memcached (纯内存,k-v),redis(持久化缓存,k-v),mongodb(文档的数据库,xml-json)

四、选择MySQL的理由 & MariaDB 介绍

1、选择MySQL的理由
MySQL性能卓越、服务稳定,很少出现异常宕机
MySQL开放源代码且无版权制约,自主性及使用成本低
MySQL历史悠久,社区及用户活跃,遇到问题可以解决
MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低
MySQL品牌口碑效应,使得企业无需考虑就直接用
MySQL支持多用操作系统,提供多种API接口,支持多用开发语言,特别对流行的语言有很好的支持
2、MariaDB 介绍
出现在2009年. MAriaDB数据库管理系统是MySQL数据库的一个分支,主要由开源社区维护,采用GPL授权许可。
开发这个MariaDB的原因之一是:甲骨文公司收购了MySQL后,MySQL有闭源的潜在风险,因此MySQL开源社区采用分支的方式来避开这个风险。MariaDB默认的存储引擎是Maria,不是MyISAM:额外说明在Mysql MyISAM引擎不支持事务。Maria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响。可以通过以下语句,转换为支持事务的Maria引擎。 TRANSACTIONAL设置成1开启事务
ALTER TABLE tablename ENGINE=MARIA TRANSACTIONAL=1;

五、下载及安装

1、总体下载安装步骤: 平时常用Navicat 等可视化工具管理Mysql等关系型数据库
官网下载mysql安装程序
安装mysql服务端
安装mysql客户端
客户端连接服务端
通过客户端向服务器发送命令,执行对数据库文件的增删改差操作。
2、windows安装(ZIP archive方式安装)
下载:MySQL Community Server 5.7.20下载地址
解压:将官网下载的解压包 解压到指定目录(例如 D://mysql-5.7.20-winx64)
添加环境变量:将解压出的文件夹下bin目录加入系统环境变量(例如:D:\mysql-5.7.20-winx64\bin)
初始化:在cmd命令行输入命令:mysqld –initialize-insecure
启动mysql服务:在cmd命令行输入命令:mysqld
连接mysql服务:另外开启cmd命令行并输入:mysql -uroot -p 回车,有密码输入密码,没有继续回车
至此安装成功,接下来手动为MySQL制作Windows系统服务(ps:制作服务必须使用全路径方式)
制作MySQL的Windows服务,在cmd命令行输入此命令:”D:\mysql-5.7.20-winx64\bin\mysqld” –install
移除MySQL的Windows服务,在cmd命令行输入此命令:”D:\mysql-5.7.20-winx64\bin\mysqld” –remove
启动MySQL服务:在cmd命令行输入:net start mysql
关闭MySQL服务:在cmd命令行输入:net stop mysql
PS:完全卸载mysql参考:参考网址
3、linux安装
下载地址:下载地址
也可直接通过命令下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
解压:tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
复制解压后的mysql目录:cp -r mysql-5.7.11-linux-glibc2.5-x86_64 /usr/local/mysql
添加用户组和用户:groupadd mysql
添加用户mysql到用户组mysql:useradd -g mysql mysql
安装:cd /usr/local/mysql/mkdir ./data/mysql
chown -R mysql:mysql ./
./scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data/mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf
修改启动脚本:vi /etc/init.d/mysqld
修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
启动服务:service mysqld start
测试连接:./mysql/bin/mysql -uroot
加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
export PATH=$PATH:/usr/local/mysql//bin
source /etc/profile
启动mysql:service mysqld start
关闭mysql:service mysqld stop
查看运行状态:service mysqld status
一些安装时错误的解决办法:
错误1:sqlyog连接时,报1130错误,是由于没有给远程连接的用户权限问题
解决1:更改 ‘mysql’数据库‘user’表‘host’项,从‘localhost’改成‘%’
use mysql;
select ‘host’ from user where user=’root’;
update user set host = ‘%’ where user =’root’;
flush privileges;
解决2:直接授权
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION;
错误2:-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 没有那个文件或目录
解决: yum -y install perl perl-devel
错误3:Installing MySQL system tables…./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:yum -y install libaio-devel


下一篇连接:Mysql相关知识运用二:Mysql数据库引擎(MyISAM,Innodb)

发布了27 篇原创文章 · 获赞 0 · 访问量 9934

猜你喜欢

转载自blog.csdn.net/weixin_38246518/article/details/89502318
今日推荐