目录
前言
一、概述
二、数据库类型
三、数据库模型
四、MYSQL的安装
(一)yum安装MYSQL
(二)rpm安装MYSQL
五、MYSQL本地登录
rpm安装MYSQL本地登录
六、重置密码
总结
MySQL是一种常用的开源关系型数据库管理系统,广泛应用于Linux系统中。它提供了一个灵活、高效和可扩展的数据库解决方案,被许多应用程序和网站用于存储和管理数据。
在Linux中,MySQL有以下特点和用法:
1. 安装和配置:MySQL可以通过Linux发行版的软件包管理器进行安装,也可以手动从官方网站下载并安装。安装后,可以通过配置文件进行必要的参数设置。
2. 命令行工具:MySQL提供了一系列命令行工具,例如`mysql`、`mysqldump`、`mysqladmin`等,用于连接数据库、执行查询、备份和恢复数据、管理用户等操作。
3. 数据库管理:通过MySQL的命令行工具或图形界面工具(例如phpMyAdmin或MySQL Workbench),可以创建数据库、创建表、定义表结构、添加索引、进行备份和还原等管理操作。
4. 用户权限管理:MySQL允许创建多个用户,并为不同的用户赋予不同的权限。可以通过GRANT和REVOKE语句来控制用户的访问权限,从而保障数据的安全性。
5. 数据备份和恢复:MySQL提供了多种备份和恢复数据的方法。常用的方法包括使用`mysqldump`命令来导出数据和结构,以及使用`mysql`命令或其他工具来导入数据和恢复。
6. 数据库连接和编程接口:MySQL支持多种编程语言的接口,如PHP、Python、Java等。通过这些接口,开发人员可以连接数据库并执行SQL查询,实现与MySQL的交互。
总之,MySQL在Linux系统中是一个功能强大、稳定可靠的数据库管理系统,适用于各种规模的应用程序和网站。它具有良好的性能、易于使用和丰富的功能,成为众多开发人员和系统管理员的首选。
一、什么是数据库
1)将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合:银行存款的信息、电话薄
2)数据库是存储、管理和操作组织化数据的软件系统
二、应用方向
1)企业应用: 存放用户数据、管理企业数据
2)金融行业:存储分析客户的财务数据
3)电子商务:存储产品信息、订单信息等
4)社交媒体:存储社交消息数据
5)物联网:物联网设备在云服务平台的数据存储
三、为什么要用数据库,优势、特性?
1)可靠性和稳定性
现代数据库系统通常具有高度可靠性和稳定性,可以提供持久性和容错性,可以确保企业的数据安全性。
2)数据管理能力
数据库系统提供了一种强大的方式来管理数据,从数据的存储到访问都进行统一的管理。企业可以更好地跟踪、管理和报告数据,从而使工作更加高效。
4)数据共享和集成
企业常常需要从不同的部门和应用程序中收集信息和数据。通过使用数据库,这些数据可以集成在一起,使企业更容易理解业务、做出决策。
5)数据安全性和隐私保护
企业往往会处理大量的机密数据,如个人信息、财务信息、业务数据等等。数据库管理系统可以提供安全的访问控制和数据保护功能,保护数据的隐私性和机密性。
6)减少数据冗余
数据库技术可以帮助企业减少数据冗余和重复,提高数据的一致性、准确性和可重用性。
一、关系型数据库,RDBMS
1)概述:关系型数据库是一种使用表格来展示和管理数据的数据库,关系型数据库的核心是数据之间的关系,因此也叫做“关系数据库”。RDBMS可以让用户很容易地使用和管理这些关系
2)特点
便于查询和操作: SQL语句
结构化数据:使用行和列存放数据
数据的一致性和完整性:各种约束条件
并发性:支持多用户连接的隔离性
3) 代表产品
MySQL: 瑞典MYSQL AB公司开发,现由甲骨文公司管理
PostgreSQL:PostgreSQL全球开发组开发的免费的开源的数据库管理系统
二、非关系型数据库,NoSQL
1)概述:NoSQL(Not only SQL)是一种非关系型数据库模型,其数据存储和查询机制与传统的关系型数据库不同
2)特点
非结构化数据: 文本、图像、媒体等
分布式存储:分布在多个节点中,实现高并发
没有固定的规范模式:无需定义表和列,不强制要求结构
高可伸缩性:支持水平扩展,增加或删除节点
高性能:高速读写操作,比传统的关系型数据库效率要高
3)代表产品
MongoDB: 一款基于文档存储模型的非关系型数据库软件
Redis:一款基于内存存储的非关系型数据库,与MongoDB一样广泛应用于互联网领域, Redis常用于快速读写操作、缓存等场景
一、主要有:层次型数据库模型;网状型数据库模型;关系型数据库模型;非关系型模型
1) 层次型数据库模型:
1966年,IBM研究员Codd提出层次结构模型;
它的数据结构如同树状结构。每个节点都只有一个父节点,但可以有多个子节点;
这种模型存在层次结构复杂、扩展性差、数据操作限制等问题。
2)网状型数据库模型:
1969年,CODASYL工作组发布了网络模型;
它使用复杂链表来表示数据之间的关系,并增加了数据结构的灵活性和递归处理能力,从而解决了层次结构模型的一些问题;
解决了层次结构模型的一些问题。但是网络模型需要了解复杂的物理存储结构,对程序设计人员的要求比较高。
3)关系型数据库模型:
1970年,Codd提出了关系型模型,也就是目前SQL和RDBMS所采用的模型;
关系型模型基于二维表格的结构组织数据,每个表格称为关系,每行记录代表一个实体,每列记录代表一个属性。关系之间通过主键和外键进行关联;
它具有数据结构简单、数据组织规范、数据操作强大、数据完整性可控等优点,是目前应用最广泛的数据库模型。
4)非关系型模型
MYSQL的端口是3306/tcp安装可以分为yum安装;rpm安装;编译安装三种下面我们主要对rpm安装一起来操作一下
1)首先配置我们的基础环境:关闭防火墙、SELINUX、配置我们的本地yum源
2)直接使用yum -y install mariadb mariadb-server即可
3)启动MYSQL命令systemctl start mariadb.service验证netstat -anput |grep mysql4)创建用户命令mysqladmin -uroot -p password '新密码'
1)首先配置我们的基础环境:关闭防火墙、SELINUX、确保我们的网络可以上网。我们可以ping www.baidu.com 来验证
2)下载安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
3)安装数据库服务
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server 哦!不!安装失败
提示信息:
mysql-community-common-5.7.42-1.el7.x86_64.rpm 的公钥尚未安装
失败的软件包是:mysql-community-common-5.7.42-1.el7.x86_64
GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
失败原因分析:mysql密钥过期
4)解决办法:
1、安装新的密钥然后再安装服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-server
2、不使用GPG密钥验证
yum -y install mysql-server --nogpgcheck
提示信息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
出现错误分析原因:输入的密码是错误的,所以拒绝你的访问
2)解决办法1:查看临时密码
grep 'temporary password' /var/log/mysqld.log 最后一个字段就是我们临时密码
使用mysql -uroot -p
解决办法2:进入数据库的配置文件 vim /etc/my.cnf并添加参数skip-grant-tables不验证密码进入mysql,保存退出重启服务。
通过以上步骤我们可以经入到mysql了,接下来我们以解决办法2为基础进行操作
2)数据库的基本查看方法
查看user中有什么 select * from user\G;
3)创建root用户并设置密码
先刷新flush privileges;
在删除原用户drop user 'root'@'localhost';
最后创建用户create user 'root'@'localhost' identified by '123456';
赋予root权限
grant all privileges on *.* to 'root'@'localhost' with grant option;
刷新 flush privileges;
退出 exit
4)去恢复我之前在配置文件vim /etc/my.cnf中添加的去掉配置项skip-grant-tables
5)验证:重启mysql,然后使用新密码重新登录数据库
systemctl restart mysqld
mysql -uroot -p123456
在进入数据库查看时要注意命令的使用:查看数据库 show databases;使用mysql数据表use mysql; 查看user中有什么 select * from user\G;并且在修改密码时要注意使用flush privileges刷新。