二阶段 数据库、yum安装、编译安装、

本文详细介绍了数据库系统、DBMS的SQL语言、数据库访问技术,包括MySQL的部署方法、不同数据库引擎如InnoDB、MyISAM和MEMORY的特点,以及MySQL事务的原理和云数据库如华为云RDS的应用。
摘要由CSDN通过智能技术生成

一、数据库     

1、数据库系统 DBS

     a、数据库管理系统(DataBase Management System, DBMS)

              SQL(RDS): ORACLE、 MySQL、MariaDB、SQL-SERVER

              关系型数据库:表结构,有库有表

              NoSQL: Redis、MongoDB、Memcache

              非关系型数据库:key-value  键值对

    b、 数据库管理员(DBA)

    c、 SQL语言(Structured Query Language 即结构化查询语言)

              DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程、函数, CREATE                      ALTER  //开发人员

              DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE,DROP、更新数据                    UPDATE //开发人员

              DQL语句 数据库查询语言: 查询数据 SELECT

              DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

     d、数据库访问技术 

              ODBC PHP <.php>

              JDBC JAVA <.jsp>

              settings.py python <.py>

      

2、数据库的部署

版本:

       MySQL:8.0

       MySQL:5.7

yum安装

       下载仓库

       www.mysql.com--->  DOW--->  ----> 

       --->--->

       mysql 官网 mysql仓库的安装包

       base  epel  没有mysql 的rmp 包(mariadb)

       安装:rpm -ivh 包

       [root@localhost ~]# rpm -ivh mysql80-community-release-el7-9.noarch.rpm 

       版本修改:

          非交互式:yum -y install yum-utils

                            

                            //关闭80

                            yum-config-manager  --enable  mysql157-community

                            //开启5.7

                           

                           yum -y install mysql mysql-server

           交互式:   

                           

                           

              [root@xingdian ~]# yum -y install mysql mysql-server

              mysql 默认初始密码

              systemctl start mysqld 

              

              mysqladmin  -u  root  -p'L75HFfVaCU.L'    password   'QianFeng@123'   (密码得8位)

              mysql  -u  root  -p'QianFeng@123'

     数据库初始化:

             1、停止数据库

              systemctl  stop  mysqld

             2、删除所有数据

              rm -rf  /var/lib/mysql/*   (删了目录在重启前创建,修改所属组和者)

             3、启动数据库

              systemctl  start  mysqld

             4、初始化(修改数据库得初始密码)

yum安装的数据库相关内容:

存放数据的目录:/var/lib/mysql

数据库服务的UUID:cat /var/lib/mysql/auto.cnf

数据库配置文件:cat/etc/my.cnf

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

 数据库服务的PID

 

 判断数据库服务mysql是否运行:ps aux 、ss 、systemctl

 mysql端口号3306

关闭数据库密码强度:

vi /etc/my.cnf

编译安装

       1、   www.mysql.com--->  --->  

              

             

              

                [root@localhost ~]# tar xf mysql-boost-5.7.43.tar.gz 
                [root@localhost ~]# ls
                anaconda-ks.cfg  mysql-5.7.43  mysql-boost-5.7.43.tar.gz
                [root@localhost ~]# cd mysql-5.7.43/

                [root@localhost mysql-5.7.43]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake

                

                

                清理mariadb环境   (另一个环境)        

                

                 准备新用户

                 groupadd mysql

                 useradd -r  -g  mysql  -s /sbin/nologin  mysql

                [root@localhost mysql-5.7.43]# cmake . \        

-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \指定安装目录配置文件的位置,默认就是etc
-DMYSQL_DATADIR=/usr/local/mysql/data \数据目录 错误日志文件
-DINSTALL_MANDIR=/usr/share/man \ 帮助文档的目录
-DMYSQL_TCP_PORT=3306 \ 默认端口号3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ 用来做网络通信,启动的时候才会产生
-DDEFAULT_CHARSET=utf8 \默认字符集
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \可以上下翻历史命令
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \ 嵌入式服务器
-DENABLED_LOCAL_INFILE=1 \ 支持从本机导入
-DWITH_INNOBASE_STORAGE_ENGINE=1   //默认存储引擎

提示:boost也可以使用如下指令自动下载
-DDOWNLOAD_BOOST=1
 

                模板:

                          

                 

                 

                 

                     [root@localhost mysql-5.7.43]#vi a.sh(加东西)

                     [root@localhost mysql-5.7.43]#bash a.sh

                     [root@localhost mysql-5.7.43]# make && make install

                     初始化:

                      [root@localhost ~]# cd /usr/local/mysql               把这个删了就相当于卸载
                      [root@localhost mysql-5.7.43]# mkdir mysql-files
                      [root@localhost mysql-5.7.43]#chown -R mysql.mysql /usr/local/mysql
                      [root@localhost ~]#ls /var/local/mysql/bin

                      [root@localhost ~]# cd /usr/local/mysql

                      [root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --                                                        basedir=/usr/local/mysql -- datadir=/usr/local/mysql/data
                      初始化,只需要初始化一次

                     

                     

                     

                     

                     

                     设置环境变量;可以直接使用mysql相关命令:

                      

                      PATH=$PATH:/usr/local/mysql/bin

                     

                     

                     设置开机启动,并用systemctl管理mysql服务:

                     

   3、数据库引擎:                  

                      数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎

存储引擎查看

​​​​​​

[root@localhost ~]# mysql -u root -p'QianFeng@123'

Support列的值表示某种引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示该引擎为当前默认的存储引擎

InnoDB存储引擎

InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键;InnoDB是默认的MySQL引擎

特点:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交和回滚

MyISAM存储引擎

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务

特点:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用

MEMORY存储引擎

MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问

特点:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表

4、mysql事务

MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行

事务用来管理 insert,update,delete 语句

满足事务条件

原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样

一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作

隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)

持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失

云数据库:

华为云对于云数据库mysql:RDS

                    

            

              

              

       

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值