今天我们学习了在虚拟机上安装MySQL。本文只是当做笔记,有什么错的地方还请大神指点一二。
MySQL历史
这里很好的说明了MySQL历史。
https://blog.youkuaiyun.com/tianlesoftware/article/details/6999245
数据库类型
关系型数据库
- 关系型数据库: 是指采用了关系模型来组织数据的数据库。简单说就是二维表格的模型。
- 关系模型中常用的概念:
关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名
元组:可以理解为二维表中的一行,在数据库中经常被称为记录
属性:可以理解为二维表中的一列,在数据库中经常被称为字段
域:属性的取值范围,也就是数据库中某一列的取值限制
关键字:一组可以唯一标识元组的属性,数据库中常称为主键,由一个或多个列组成
关系模式:指对关系的描述。 - 一些关系型数据库:Oracle,access,DB2,mysql,INGRES,FoxPro等。
非关系型数据库
- NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
- MongoDB: 是个面向文档的数据库,使用JSON 风格的数据格式。
- couchdb:是另一个面向文档的数据库,以 JSON 格式存储数据。它兼容于 ACID,像 MongoDB 一样,CouchDB 也可以用于存储网站的数据与内容,以及提供缓存等。
- Neo4j: 是一款 NoSQL 图型数据库,具有非常高的性能。
- memcachedb:这是个分布式的键值存储系统,用于数据存储并以非常快速且可靠的方式检索数据。
- Cassandra:是个分布式数据库,支持分散的数据存储,可以实现容错以及无单点故障等。
- Redis:这是个开源、高级的键值存储。由于在键中使用了 hash、set、string、sorted set 及 list,因此 Redis 也称作数据结构服务器。
- Hadoop HBase:是一款可伸缩、分布式的大数据存储。它可以用在数据的实时与随机访问的场景下。
- Riak: 是最为强大的分布式数据库之一,它提供了轻松且可预测的伸缩能力,向用户提供了快速测试、原型与应用部署能力。
10.ttserver(东京的暴君 ):持久化存储的数据库 单表2000万数据库的情况下使用较好。
一致性哈希
一致性哈希参考下文讲的非常详细。
Hive是将sql 转化成 mapreduce在进行处理和计算的 。
范式 (设计数据库的规则)
主要有三种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF)。
第一范式:表中数据不可在拆分。
第二范式:在第一范式基础上,添加主键。
第三范式:在第二范式基础上,有外键 。
MySQL结构

事务
事务 : 一组事件全部完成或者 全部取消。
事务回滚
事务四大特性:ACID
1.原子性Atomicity
一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。
2.一致性Consistency
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
3.隔离性 Isolation
数据库允许多个并发事务同时对其数据进行读写和修改的能力
4.持久性 Durability
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
ODBC 是有C语言开发 数据库对外提供服务的API(应用程序接口)
JDBC java 专门供java使用
约束、索引
索引就是为了 加快查询
基本语法:
SQL
DML 数据库的管理语言 grant 授权 revoke 收权
DCL 查询语言 show 显示 select 查询 use 使用
DQL 标准查询语言 。
DDL 定义语言 insert 插入 update 修改 delete 删除 truncate 删除
Delete truncate 就是直接情况磁盘内容
Delete* update 内容修改成空 代替delete
主从 读写 备份 全备+增量日志 才有可能恢复人为删除的数据
MySQL二进制的三种日志格式
1.row 行
数据只要更改 我就把你更改的数据记录下来 update 。
2.Statement 语句
记录你执行过的语句
mysql更新了一些函数 。
3. mixed
根据你更改的东西 只能的选择 使用 row 或者statement。
安装MySQL
创建个目录。
[root@tyler ~]# mkdir application
将MySQL的gz压缩包上传到虚拟机的application目录下。
[root@tyler application]# rz
解压。
[root@tyler application]# tar -zxvf mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
软连接(方便后面操作)。
[root@tyler application]# ln -s mysql-5.5.62-linux-glibc2.12-x86_64 mysql
创建mysql用户。
[root@tyler application]# useradd -s /sbin/nologin mysql
初始化mysql。
[root@tyler ~]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
添加环境变量。
[root@tyler ~]# echo "export PATH=/application/mysql/bin:$PATH" >> /etc/profile
[root@tyler ~]# . /etc/profile
查看是否有3306的进程,是否有mysql用户。
[root@tyler ~]# ss -lntup
[root@tyler ~]# id mysql
后台启动。
[root@tyler ~]# mysql_safe &
[root@tyler ~]# mysql 登陆MySQL
备份
[root@tyler ~]# mysqldump -B test --events > test.sql
mysql> drop databases test; 删除数据库test
mysql> quit; 退出数据库
[root@tyler ~]# mysql -B test < test.sql 恢复
[root@tyler ~]# mysqladmin shutdown 关闭mysql
本文详细介绍在虚拟机上安装MySQL的过程,包括创建目录、解压文件、初始化数据库、配置环境变量等步骤。此外,还介绍了MySQL的历史、事务特性、范式、备份与恢复等关键概念。
901

被折叠的 条评论
为什么被折叠?



