1、数据库
1.1、什么是数据库
相信大家都有这个疑问:存储数据用文件就足够了,为什么还需要数据库呢?
文件保存数据有以下几个缺点:
1、文件的安全性问题
2、文件不利于数据查询和管理
3、文件不利于存储海量数据
4、文件在程序中控制不方便
**数据库存储介质: **
磁盘和****内存
为了解决上述问题,大佬们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的操作水平是衡量一个程序员水平的重要指标。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库的基本构成
数据(Data)包括各种各样的信息,如数字、文本、图像、音频、视频等。例如,在一个电商数据库中,商品的名称、价格、库存数量等都是数据。
数据表(Table)数据通常以表的形式组织。表由行(Row)和列(Column)组成。例如,在一个学生信息数据库中,有一张 “学生表”,列可能包括学生的学号、姓名、年龄、性别等,每一行代表一个具体的学生信息。
数据库管理系统(DBMS - Database Management System)这是用于管理数据库的软件,常见的有 MySQL、Oracle、SQL Server 等。它负责对数据库进行操作,如数据的插入、查询、更新和删除等操作,同时保证数据的安全性、完整性和一致性。
1.2、目前主流的数据库
1.2.1、关系型数据库
Oracle Database:
特点:查询能力强,事务处理能力出色,能很好地保证数据完整性和安全性,支持多种操作系统和编程语言,适用于大型和复杂的企业级数据应用场景,但成本高,安装配置困难.
应用案例:广泛应用于银行系统等对数据安全性、一致性和完整性要求极高的领域.
MySQL:
特点:开源免费,安装配置简单,数据存取速度快,缓存快,数据架构可扩展,适合中小型和简单的数据应用场景,不过其数据类型相对较少,数据分析工具不够丰富.
应用案例:常用于电商网站,能够满足商品和订单数据的高效处理和存储需求.
Microsoft SQL Server:
特点:数据类型丰富,拥有较多的数据分析工具,数据管理界面易用,数据安全机制集成度高,适用于中大型和多样的数据应用场景,但成本较高,安装配置复杂.
应用案例:在医疗系统中应用较多,可满足患者和诊断数据的管理与分析需求.
PostgreSQL:
特点:开源免费,数据功能高级,扩展选项多,标准兼容性好,社区开放,支持多种操作系统和编程语言,适用于中大型和创新的数据应用场景,不过安装配置有一定难度.
应用案例:在教育系统中表现出色,适合处理学生和课程等相关数据.
1.2.2、非关系型数据库
MongoDB:
特点:开源免费,数据结构灵活,查询和更新速度快,支持自动分片和复制,架构可扩展,适用于大型的非结构化数据应用场景,但数据功能相对简单,与传统数据库标准的兼容性欠佳.
应用案例:是社交网络存储用户和动态数据的常用选择.
Redis:
特点:开源免费,数据存储简单,存取速度快,缓存性能好,架构可扩展,适用于高性能和实时的数据应用场景,但数据类型和功能有限.
应用案例:常用于游戏系统,可快速处理玩家和状态数据.
Cassandra:
特点:开源免费,数据存储高效,存取快,具有分布式容错能力和可扩展的架构,适合海量分布式数据的存储和处理,但数据功能不够丰富,数据分析工具较少.
应用案例:在物联网领域应用广泛,可处理大量设备和传感器数据.
1.2.3、新型数据库
Neo4j:
特点:开源免费,数据结构灵活,查询和更新迅速,分布式容错能力强,架构可扩展,适用于处理关系复杂的数据,如知识图谱等,但数据类型和功能有限,分析工具较少.
应用案例:是知识图谱构建和应用的常用数据库.
Hadoop HDFS:
特点:作为大数据存储和处理的基础架构,具有高容错性、高可扩展性,适合大规模数据集的分布式存储和处理,但它不是传统意义上的数据库,主要用于批处理和数据挖掘等场景。
应用案例:在互联网公司的大数据分析、数据仓库等场景中广泛应用,如百度、阿里巴巴等公司用于处理海量的用户行为数据、日志数据等。
Cassandra:
特点:开源免费,数据存储高效,存取快,具有分布式容错能力和可扩展的架构,适合海量分布式数据的存储和处理,但数据功能不够丰富,数据分析工具较少.
应用案例:在物联网领域应用广泛,可处理大量设备和传感器数据.
2、mysql的卸载(可选)
以Linux下Centos7环境为例,****以下操作均以root身份进行:
2.1 查看系统是否存在内置mysql
ps ajx | grep mysql # 先检查是否有内置的mysql存在
如果系统中已经安装了mysql,需要先停止mysql正在进行的服务,才能继续操作
如果系统中没有安装mysql,可以直接跳到下面的MySQL安装步骤
2.2、停止mysql服务
systemctl stop mysqld #停止当前的mysql服务
2.3、查看mysql安装包
rpm -qa | grep mysql #查看mysql安装包
2.4、卸载mysql安装包
rpm -qa | grep mysql | xargs yum -y remove #卸载mysql安装包
** 卸载完成提示:**
2.5、确认mysql是否完全卸载
查看mysql安装包是否仍然存在:
rpm -qa | grep mysql
查看系统中是否存在mysql服务进程:
ps ajx | grep mysql
查看mysql的配置文件是否存在:
ls /ect/my.cnf
如果上面三点全都不存在,说明mysql已经彻底卸载
3、mysql的安装
3.1、配置mysql yum源
MySQL官方的yum源:
Index of /232905http://repo.mysql.com/**注意:最好安装和自己系统⼀致的mysql版本,否则可能会存在软件兼容性问题**
查看自己的系统版本:
cat /etc/redhat-release #查看系统版本
进入MySQL官方的yum源后显示如下界面:
单击右键选择查看页面源代码
选择与你的系统匹配的mysql版本:
由于我的Linux系统为Centos 7.6版本,但是并没有7.6对应的mysql版本,所以选择mysql157版本下Centos 7的通用版本!(不推荐新手使用mysql的最新版本)
点击后自动下载到本地
3.2、将本地mysqlyum源上传到Linux服务器
在Linux中新建一个MySQL目录
mkdir MySQL
进入目录:
cd MySQL
将本地的rpm安装包上传:
rz
选择安装包点击打开即可上传:
查看上传的安装包:
查看系统中已经安装的yum源:
ls /etc/yum.repos.d/ -l
可以看到并没有MySQL的yum源 ,接下来我们安装
3.3、安装yum源
rpm -ivh mysql57-community-release-el7.rpm
查看安装后的yum源:
ls /etc/yum.repos.d/ -l
到这里MySQL的yum源就安装成功了!
查看yum是否生效:
yum list | grep mysql
**出现如下界面(只是截取了一部分),代表yum源生效,可以正常工作 **
安装成功且yum源生效后,可以删除不必要的安装包(推荐)
rm -f mysql57-community-release-el7.rpm
3.4、安装mysql服务
yum install -y mysql-community-server
虽然这里我们只是安装MySQL服务,实际上配套的公共部分,客户端,库,以及服务器都会安装
**安装成功: **
查看mysql配置文件:
查看mysql服务端的应用程序:
查看mysql客户端:
如果这三个部分都存在,那么说明MySQL已经成功安装
4、MySQL的登录
4.1、启动mysqld
systemctl start mysqld
查看MySQL服务进程:
ps ajx | grep mysql
或者:
4.2、登录mysql
我们使用如下语句进行登录:
mysql -uroot -p
会提示我们输入密码,但是我们刚下载好的mysql连登录都还没好,哪里会有密码?
如果我们不输入密码或者输入错误都无法登录MySQL会报错:
有如下几种处理方法:
4.2.1、****使用mysql生成的临时密码登录
获取临时的root密码
grep 'temporary password' /var/log/mysqld.log
**当提示输入密码时,输入
gr9ctscZck(=
,然后按回车键就可以登录,输入密码时命令行不会回显**
使用临时密码登录成功后,我们需要修改密码,在修改密码时MySQL会判断新密码是否符合当前的默认修改策略,不满足的话就报错,不让修改,我们需要关闭修改这个判定策略。
关闭密码策略验证:
set global validate_password_policy = 0;
将密码安全强度策略设置为了最低级别(关闭验证)。原本默认值为 1(MEDIUM 强度)时,要求新密码必须包含数字、符号、大小写字母,且长度至少为 8 位。而设置为 0 后,后续修改密码时就不再进行这样严格的密码复杂度验证了,所以可以使用相对简单的密码进行修改操作。
设置密码最小长度:
set global validate_password_length = 1;
**把密码最小长度设置为了
1
位。正常情况下按照合理的安全策略,密码长度应该有一定要求以保障安全性,但你这样设置后,几乎可以使用任意长度极短的字符作为密码,同样也是出于简化操作的目的,在非安全敏感环境下的临时调整。**
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
**接着使用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888'; 语句成功修改了本地登录的 root 用户密码为 qwer@wu.888。由于前面已经关闭了严格的密码策略验证和设置了极小的密码长度要求,所以这个密码能够顺利被设置,即便它不符合默认的包含多种类型字符且长度足够的要求。 **
到这里密码修改成功!我们需要刷新权限
FLUSH PRIVILEGES;
**这是很重要的一步。当对用户权限相关设置(比如修改用户密码等操作)进行了更改后,执行这个命令可以让 MySQL 服务器重新加载权限表,使新的
root
用户密码立即生效,确保后续使用新密码登录等操作能够正常进行**
4.2.2、更改mysql配置文件登录
打开配置文件:
vim /etc/my.cnf
按下i进入插入模式,在最后一行添加skip-grant-tables 选项, 并保存退出
重启mysql服务:一定要重启服务,配置文件才可以生效
systemctl restart mysqld
这时就能跳过密码直接登录,提示输入密码时直接回车就可以成功登录MySQL
登录成功后按照上面临时密码登陆的步骤,设置新的密码,再删除配置文件内添加的 skip-grant-tables 选项, 重启mysql服务后,即可通过密码正常登录!
5、编辑mysql配置文件
主要是配置my.cnf:
打开配置文件:
vim /etc/my.cnf
设置编码格式为utf-8
character-set-server=utf8
设置端口号为3306:
port=3306
设置默认存储引擎为innodb:
default-storage-engine=innodb
在配置文件中添加如上三条代码
保存退出后重启mysql服务,配置文件就会生效:
systemctl restart mysqld
设置开机自启动(可选)
systemctl enable mysqld
systemctl daemon-reload
如上两句命令可以将mysql服务设置为Linux云服务器开机后自动启动,其实意义不大,因为云服务器一般情况下永不关机。
6、常见问题
如果在安装mysql服务时遇到了****秘钥过期的问题:
命令行提示:
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决方法:在命令行输入如下代码回车后继续尝试安装mysql服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install -y mysql-community-server
7、MySQL知识总结
本文围绕 MySQL 展开多方面介绍。从数据库基础入手,阐述其定义与主流类型。重点讲解 MySQL,其卸载需查看安装包、停止mysql服务、卸载mysql软件并确认。安装时要配置mysql yum 源、安装mysql服务。登录时可凭借临时密码或改配置文件。编辑配置文件能优化性能。还提及常见问题及解决思路,助力 MySQL 的有效使用与稳定运行。
在 MySQL 的知识旷野,我们都是逐风之人。如上关于 MySQL的讲解只是我在学习与探索过程中的一些心得分享,如有不足之处,还望各位大佬不吝在评论区予以斧正,让我在MySQL学习之路上更进一步,感激不尽!
创作不易,还请多多互三支持!!!关注博主,为你带来更多优质内容!
版权归原作者 _Zwy@ 所有, 如有侵权,请联系我们删除。