项目外包 网站开发,云南建设厅网站房地产开发资质,湖南建设网塔吊证查询,ae模板下载目录 一.数据库的基本概念
1.1数据
1.2表
1.3数据库
1.4 DBMS 数据库管理系统
1.4.1基本功能
1.4.2优点
1.4.3DBMS的工作模式
二.数据库的发展历史
2.1发展的三个阶段
第一代数据库
第二代数据库
第三代数据库
2.2mysql发展历史
三.主流数据库
四.关系型数据库和…目录 一.数据库的基本概念
1.1数据
1.2表
1.3数据库
1.4 DBMS 数据库管理系统
1.4.1基本功能
1.4.2优点
1.4.3DBMS的工作模式
二.数据库的发展历史
2.1发展的三个阶段
第一代数据库
第二代数据库
第三代数据库
2.2mysql发展历史
三.主流数据库
四.关系型数据库和非关系型数据库 区别
4.1关系型数据库
4.2非关系型数据库
五.编译安装mysql
5.1.yum安装依赖包
5.2创建程序用户管理
5.3解压mysql压缩包到指定目录
编辑 5.4安装mysql
5.5创建普通用户管理mysql
编辑 5.6更改管理主/组
5.7修改配置文件
5.8设置环境变量申明/宣告mysql命令便于系统识别
编辑
5.9初始化数据库
5.10给root账号设置密码 5.11验证
5.11.1查看数据库中有几个库
5.11.2选择进入mysql这个库
编辑 5.11.3查看库下有几个表
5.11.4退出
六.总结
方向 设备 mysql 一.数据库的基本概念
1.1数据
描述事物的符号记录包括数字文字图形图像声音档案记录等以“记录”形式按统一的格式进行储存 记录每个人的信息 或者 记录数据 1.2表
将不同的记录主旨在一起用来存储具体数据 存放信息的集合 或者存放行和列的信息 记录行 字段属性列 行列就形成了表 1.3数据库
表的集合是存储数据的仓库以一定的组织方式存储的互相有关的数据集合 总结库里有表表里有数据 数据库---数据表---数据 1.4 DBMS 数据库管理系统
数据库系统DatabaseSystemDBS是一个人机系统一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户包括数据库管理员组成。用户可以通过 DBMS 操作数据库也可以通过应用程序操作数据库。
应用程序是利用DBMS为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合。如果应用程序比较完善能够提供友好的人机界面并编译成可执行文件发行使得普通用户不需要具备计算机的专业知识在较短时间就学会使用那么就称为数据库应用软件。 navicat
常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨 询系统等。
数据库管理员DatabaseAdministratorDBA负责数据库的更新和备份、数据库系统的维护、用户管理等工作保证数据库系统的正常运行。DBA 一般由业务水平较高、资历较深的人员担任。 Database数据库是数据的汇集它以一定的组织形式存于存储介质上 DBMS是管理数据库的系统软件它实现数据库系统的各种功能。是数据库系统的核心 DBA负责数据库的规划、设计、协调、维护和管理等工作 应用程序指以数据库为基础的应用程序 1.4.1基本功能
数据库的建立和维护
包括建立数据库的结构和数据的录入与转换数据库的转储与回复数据库的重组与性能监视等功能 数据定义
包括定义全局数据结果局部逻辑数据结构存储结构保密模式及信息格式等功能保证存储在数据库中的数据正确有效和相容以防止不和语义的错误数据被输入和输出 数据操纵
包括数据查询统计和数据更新两个方面 数据库的运行管理
这是数据库管理系统的核心部分包括并发控制存去控制数据库内部维护等功能 通信功能
DBMS与其他软件系统之间的通信如Access能与其他office组件进行数据交换
1.4.2优点 相互关联的数据的集合 较少的数据冗余 程序与数据相互独立 保证数据的安全、可靠 最大限度地保证数据的正确性 数据可以并发使用并能同时保证一致性
1.4.3DBMS的工作模式
接受应用程序的数据请求和处理请求将用户的数据请求高级指令转换为复杂机器代码底层质量实现对数据库的操作从数据库的操作中接受查询结果对查询结果进行处理格式转换将处理结果返回给用户
二.数据库的发展历史
2.1发展的三个阶段
第一代数据库
层次型和网状型 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。
第二代数据库
关系型数据型库 目前大部分数据库采用的是关系型数据库。1970年IBM公司的研究员EFCodd提出了关系模型。其代表产品为sysem R和Inges。
第三代数据库
第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征以提供传统数据库系统难以支持的新应用。它必须支持面向对象具有开放性能够 在多个平台上使用。管理技术的3个阶段1 人工管理2 文件管理3 数据库系统 第三代数据库就是 非关系型数据库缓存数据库和关系型数据库的组合 2.2mysql发展历史
MySQL的历史可以追溯到1979年它的创始人叫作Michael Widenius他在开发一个报表工具的时候设计了一套API后来他的客户要求他的API支持sql语句他直接借助于mSQL当时比较牛的代码将它集成到自己的存储引擎中。但是他总是感觉不满意萌生了要自己做一套数据库的想法。
直到1996年MySQL 1.0发布Michael Widenius的大女儿的简称就是MYMichael Widenius大概也是把MySQL当成自己的女儿一样来对待.仅仅过了几个月的时间1996年10月MySQL 3.11.1当时发布了Solaris的版本一个月后linux的版本诞生从那时候开始MySQL慢慢的被人所接受。
1999年Michael Widenius成立了MySQL AB公司MySQL由个人开发转变为团队开发2000年使用GPL协议开源。
2001年MySQL生命中的大事发生了那就是存储引擎InnoDB的诞生Oracle在2005年收购了InnoDB只不过InnoDB一直以来都只能作为第三方插件供用户选择。直到现在MySQL可以选择的众多存储引擎中InnoDB依然是第一选择
2008年1月MySQL AB公司被Sun公司以10亿美金收购MySQL数据库进入Sun时代。Sun为MySQL的发展提供了绝佳的环境2008年11月MySQL 5.1发布MySQL成为了最受欢迎的小型数据库。
2009年4月Oracle公司以74亿美元收购Sun公司MySQL也随之进入Oracle时代。
2010年12月MySQL 5.5发布Oracle终于把InnoDB做成了MySQL默认的存储引擎MySQL从此进入了辉煌时代。
然而从那之后Oracle对MySQL的态度渐渐发生了变化Oracle虽然宣称MySQL依然尊少GPL协议但却暗地里把开发人员全部换成了Oracle自己人开源社区再也影响不了MySQL发展的脚步真正有心做贡献的人也被拒之门外MySQL随时都有闭源的可能……看着自己辛苦养大的MySQL被Oracle搞成这样Michael Widenius非常失望决定在MySQL走向闭源前将MySQL进行分支化依然是使用了自己小女儿的名字MariaDB玛莉亚DB。MariaDB数据库管理系统是MySQL的一个分支主要由开源社区在维护采用GPL授权许可 MariaDB的目的是完全兼容MySQL包括API和命令行使之能轻松成为MySQL的代替品。在存储引擎方面使用XtraDB来代替MySQL的InnoDB。MariaDB由MySQL的创始人Michael Widenius主导由开源社区的大神们进行开发。因此大家都认为MariaDB拥有比MySQL更纯正的MySQL血脉。最初的版本更新与MySQL同步相对MySQL5以后的版本MariaDB也有相应的5.1~5.5的版本。后来MariaDB终于摆脱了MySQL它的版本号直接从10.0开始以自己的步伐进行开发当然还是可以对MySQL完全兼容。 1979年TcX公司 Monty WideniusUnireg 1996年发布MySQL1.0Solaris版本Linux版本 1999年MySQL AB公司瑞典 2003年MySQL 5.0版本提供视图、存储过程等功能 2008年Sun公司 以10亿美元收购MySQL 2009年Oracle公司以 74 亿美元收购 sun 公司 2009年Monty成立MariaDB 三.主流数据库
关系型数据库 MysqlOracle公司 、 SQL server微软) 、access(微软公司office产品 Oracle 、DB2IBM公司sybasesybase 四.关系型数据库和非关系型数据库 区别
4.1关系型数据库
关系数据库结构是二维数据库表二维表当中每个字段列用来描述对象的一个属性 每个记录行用来描述一个对象的信息完整信息关系数据库写到哪里也就是存储在硬盘当中 读写系统就会受到的IO限制或者瓶颈
其他 关系型数据库最典型的数据结构是表由二维表及其之间的联系所组成的一个数据组织 优点 1、易于维护都是使用表结构格式一致 2、使用方便SQL语言通用可用于复杂查询 3、复杂操作支持SQL可用于一个表以及多个表之间非常复杂的查询。 缺点 1、读写性能比较差尤其是海量数据的高效率读写 2、固定的表结构灵活度稍欠 3、高并发读写需求传统关系型数据库来说硬盘I/O是一个很大的瓶颈。
4.2非关系型数据库
MongoDB 、 Redis内存数据库/缓存数据库K-V键值对、与之类似的Memcache,K-V键值对 redis-memecache对比 相同点存储高热数据(在内存中高速运行 不同点redis可以做持久化保存可以存储对象 非关系型数据库严格上不是一种数据库应该是一种数据结构化存储方法的集合可以是文档或者键值对等。
优点
1、格式灵活存储数据的格式可以是key,value形式、文档形式、图片形式等等文档形式、 图片形式等等使用灵活应用场景广泛而关系型数据库则只支持基础类型。 2、速度快nosql可以使用硬盘或者随机存储器作为载体而关系型数据库只能使用硬盘 3、高扩展性 4、成本低nosql数据库部署简单基本都是开源软件。
缺点
1、不提供sql支持学习和使用成本较高 2、无事务处理 3、数据结构相对复杂复杂查询方面稍欠。 总结 非关系型数据库存在内存上可以做持久化保存速度快支持高并发的情况可以进行海量的数据储存 关系型数据库易于维护都用sql语句使用方便可以进行复杂查询 五.编译安装mysql
安装前准备 关闭防火墙和防护 准备好mysql的二进制包和boost的二进制包 5.1.yum安装依赖包 yum -y install \ gcc \ gcc-c \ ncurses \ #字符终端下图形互动功能的动态库 ncurses-devel \ #ncurses开发包 bison \ #语法分析器 cmake #mysql需要用cmake编译安装 yum -y install gcc gcc-c ncurses ncurses-devel bison cmake5.2创建程序用户管理
useradd -s /sbin/nologin mysql 5.3解压mysql压缩包到指定目录
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost5.4安装mysql cmake \ -DCMAKE_INSTALL_PREFIX/usr/local/mysql \ #指定mysql的安装路径 -DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件数据库连接文件的存储路径 -DSYSCONFDIR/etc \ #指定配置文件的存储路径 -DSYSTEMD_PID_DIR/usr/local/mysql \ #指定进程文件的存储路径 -DDEFAULT_CHARSETutf8 \ #指定默认使用的字符集编码如 utf8 -DDEFAULT_COLLATIONutf8_general_ci \ #指定默认使用的字符集校对规则 -DWITH_EXTRA_CHARSETSall \ #指定支持其他字符集编码 -DWITH_INNOBASE_STORAGE_ENGINE1 \ #安装INNOBASE存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE1 \ #安装ARCHIVE存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE1 \ #安装BLACKHOLE存储引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE1 \ #安装FEDERATED存储引擎 -DMYSQL_DATADIR/usr/local/mysql/data \ #指定数据库文件的存储路径 -DWITH_BOOST/usr/local/boost \ #指定boost的路径若使用mysql-boost集成包安装则-DWITH_BOOSTboost -DWITH_SYSTEMD1 #生成便于systemctl管理的文件 存储引擎选项: MYISAMMERGEMEMORY和cSv引擎是默认编译到服务器中并不需要明确地安装。静态编译一个存储引擎到服务器使用-DWITH engine STORAGE ENGINE 1 可用的存储引擎值有:ARCHIVEBLACKHOLEEXAMPLEFBDERATBDIMNOBASB(InnoDB)PARTTTON(partitioning support),和PERFSCHEMA(Performance schema) cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX/usr/local/mysql \
-DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \
-DSYSCONFDIR/etc \
-DSYSTEMD_PID_DIR/usr/local/mysql \
-DDEFAULT_CHARSETutf8 \
-DDEFAULT_COLLATIONutf8_general_ci \
-DWITH_EXTRA_CHARSETSall \
-DWITH_INNOBASE_STORAGE_ENGINE1 \
-DWITH_ARCHIVE_STORAGE_ENGINE1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE1 \
-DMYSQL_DATADIR/usr/local/mysql/data \
-DWITH_BOOST/usr/local/boost \
-DWITH_SYSTEMD1make make install 注意如果在CMAKE的过程中有报错当报错解决后需要把源码目录中的CMakeCache.txt文件删除然后再重新CMAKE否则错误依旧 make -j 4 make install 5.5创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/ 5.6更改管理主/组
chown mysql:mysql /etc/my.cnf 5.7修改配置文件 vim /etc/my.cnf #删除原配置项再重新添加下面内容 [client] #客户端设置 port 3306 socket/usr/local/mysql/mysql.sock [mysqld] #服务全局设置 user mysql #设置管理用户 basedir/usr/local/mysql #指定数据库的安装目录 datadir/usr/local/mysql/data #指定数据库文件的存储路径 port 3306 #指定端口 character-set-serverutf8 #设置服务器字符集编码格式为utf8 pid-file /usr/local/mysql/mysqld.pid #指定pid 进程文件路径 socket/usr/local/mysql/mysql.sock #指定数据库连接文件 bind-address 0.0.0.0 #设置监听地址0.0.0.0代表允许所有如允许多个IP需空格隔开 skip-name-resolve #禁用DNS解析 max_connections2048 #设置mysql的最大连接数 default-storage-engineINNODB #指定默认存储引擎 max_allowed_packet16M #设置数据库接收的数据包大小的最大值 server-id 1 #指定服务ID号 [client]
port 3306
default-character-setutf8
socket/usr/local/mysql/mysql.sock [mysql]
port 3306
default-character-setutf8
socket/usr/local/mysql/mysql.sock
auto-rehash[mysqld]
user mysql
basedir/usr/local/mysql
datadir/usr/local/mysql/data
port 3306
character-set-serverutf8
pid-file /usr/local/mysql/mysqld.pid
socket/usr/local/mysql/mysql.sock
bind-address 0.0.0.0
skip-name-resolve
max_connections2048
default-storage-engineINNODB
max_allowed_packet16M
server-id 1
sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTESNO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常 STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_AUTO_CREATE_USER 禁正GRANT创建密码为空的用户 NO_AUTO_VALUE_ON_ZERO mysql中的自增长列可以从O开始。默认情况下自增长列是从1开始的如果你插入值为0的数据会报错 NO_ZERO_IN_DATE 不允许日期和月份为零 NO_ZERO_DATE mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告 ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中如果数据被零除则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL PIPES_As_CONCAT 将||视为字符串的连接操作符而非或运算符这和Oracle数据库是一样的也和字符串的拼接函数Concat相类似 ANSI_QUOTES 启用ANSI_QUOTES后不能用双引号来引用字符串因为它被解释为识别符 5.8设置环境变量申明/宣告mysql命令便于系统识别
echo PATH$PATH:/usr/local/mysql/bin /etc/profile
source /etc/profile5.9初始化数据库 cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ #生成初始化密码为空 --usermysql \ #指定管理用户 --basedir/usr/local/mysql \ #指定数据库的安装目录 --datadir/usr/local/mysql/data #指定数据库文件的存储路径 cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--usermysql \
--basedir/usr/local/mysql \
--datadir/usr/local/mysql/data cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload #刷新识别
systemctl start mysqld.service #开启服务
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看端口 看到绿色的activerunning表明服务已启动 5.10给root账号设置密码
mysqladmin -u root -p password 123456
————》直接回车
登录 mysql -u root -p1234565.11验证
5.11.1查看数据库中有几个库
show databases 5.11.2选择进入mysql这个库
use mysql 5.11.3查看库下有几个表
show tables 5.11.4退出
exit 方向 show databases---use xxx ---show tables 六.总结
方向 数据库----》库----》表----数据 库分关系型数据库和非关系型数据库 前者存于硬盘更方便的去查询数据后者存于内存更多用于高并发的情况下能处理海量的数据 设备 mysql 目的对数据进行整理存储和使用 需求完成数据持久化保存快速提取 功能 通过数据库管理系统DBMS实现 重点 数据库管理系统DBMS 客户端 进行数据获取的时候过程 接受应用程序的数据请求和处理请求将用户的数据请求高级指令转换为复杂机器代码底层指令实现对数据库的操作从数据库的操作中接受查询结果对查询结果进行处理格式转换将处理结果返回给用户