数据库(1)

发布时间:2024年01月09日

1.什么是数据库

1.1.数据

????????描述事物的符号记录,可以是数字文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。

1.2.数据库

? ? ? ? 存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的几余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
????????数据结构化
????????数据的共享性高,冗余度低,易扩充
????????数据独立性高
????????数据由 DBMS统一管理和控制 (安全性、完整性、并发控制、故障恢复)

1.3 常见数据库

1.3.1 关系型数据库

关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数 据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 简单说,关系型数据库是由 多张能互相联接的二维行列表格组成的数据库。

关系模型就是指二维表格模型, 因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组 织。当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、MicrosoftAccess、MySQL、浪 潮K-DB 、武汉达梦、南大通用、人大金仓等。

实体关系模型简称 E-R 模型,是一套数据库的设计工具,他运用真实世界中事物与关系的观念,来解释 数据库中的抽象的数据架构。实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计, 有助于设计过程中的构思及沟通讨论。

1.3.2 非关系型数据库

非关系型数据库: 又被称为 NoSQL(Not Only SQL ),意为不仅仅是 SQL, 是一种轻量、开源、不兼 容 SQL 功能的数据库, 对 NoSQL 最普遍的定义是“非关联型的”,强调 Key-Value 存储和文档数据库的 优点,而不是单纯地反对 RDBMS(关系型数据库管理系统)。

2.mysql概述

????????MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购

????????目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

?**3.MySQL本地仓库安装

在Linux端操作

第一步:配置本地yum源仓库

本地yum源配置文件内容如下:具体配置方法见上一篇博客。

[base]
name=baseos
gpgcheck=0
baseurl=/mnt/BaseOS
[appStrea]
name=appstream
gpgcheck=0
baseurl=/mnt/AppStream

第二步:安装mysql-server

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

第三步:启动mysql

[root@192 ~]# systemctl start mysqld
[root@192 ~]# mysql -uroot -p
Enter password:? ? ? ? ?# 此处不需要输入密码(本地安装的缺点之一,不需要密码认证)

4.MySQL网络安装

**方法一:RPM捆绑包

如果之前安装过本地镜像版本的MySQL软件,请先删除之前的安装

[root@server /]#dnf remove mysql-server -y

[root@server /]#rm -rf /var/lib/mysql

[root@server /]# rm -rf /var/log/mysql

[root@server /]# userdel -r mysql

下载安装RPM捆绑包:

????????利用MySQL的RPM捆绑包下载安装。

在windows端操作:

第一步:登陆? ? https://www.mysql.com? ? 网站,访问DOWNLOADS界面

?

第二步:?下拉界面找到? ??MySQL Community (GPL) Downloads选项? ?点击确认? ? ?

第三步:找到MySQL Community Server点击进入。

第四步:找到MySQL对应的RPM捆绑包,然后点击确认;

? ? ? ? 注:在此之前,应先选择对应的操作系统,以便后续网页给出对应的MySQL的RPM捆绑包

第五步:?复制对应的链接

在Linux端操作:

第七步:

下载RPM捆绑包

[root@192 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.35-1.el9.x86_64.rpm-bundle.tar?

?????解压缩:[root@192 ~]# tar -xvf mysql-8.0.35-1.el9.x86_64.rpm-bundle.tar

第八步:

? ? ? ? 由于该安装包为捆绑包,因此需要一次性将其全部安装。因此我们使用联合安装

? ? ? ? 联合安装:

? ? ? ? 确认所需安装的安装包

????????????????mysql-community-server-8.0.35- 1.el9.x86_64.rpm? ? ? ? ? ? ? ? ? # 服务端安装包

????????????????mysql-community-client-8.0.35-1.el9.x86_64.rpm????# 客户端安装包不安装会无法登录

????????????????mysql-community-common-8.0.35-1.el9.x86_64.rpm? # 公共库

????????????????mysql-community-icu-data-files-8.0.35-1.el9.x86_64.rpm? # 支持正则的文件库

????????????????mysql-community-client-plugins-8.0.35-1.el9.x86_64.rpm? #? 客户端的插件

????????? ? ? ? mysql-community-libs-8.0.35-1.el9.x86_64.rpm? ? #?用于支持开发有关C++的,(选择性安装)

[root@192 ~]#?yum localinstall mysql-community-server-8.0.35- 1.el9.x86_64.rpm \

mysql-community-client-8.0.35-1.el9.x86_64.rpm \

mysql-community-common-8.0.35-1.el9.x86_64.rpm \

mysql-community-icu-data-files-8.0.35-1.el9.x86_64.rpm \

mysql-community-client-plugins-8.0.35-1.el9.x86_64.rpm \

mysql-community-libs-8.0.35-1.el9.x86_64.rpm

#? ?由于命令太长因此我们使用"\"分行写

[root@192 ~]# yum localinstall  mysql-community-server-8.0.35-1.el9.x86_64.rpm \
> mysql-community-client-8.0.35-1.el9.x86_64.rpm \
> mysql-community-common-8.0.35-1.el9.x86_64.rpm \
> mysql-community-icu-data-files-8.0.35-1.el9.x86_64.rpm \
> mysql-community-client-plugins-8.0.35-1.el9.x86_64.rpm \
> mysql-community-libs-8.0.35-1.el9.x86_64.rpm 

第九步:

启动服务? ? [root@192 ~]# systemctl start mysqld

查询密码,寻找默认密码

[root@192 ~]# ?grep 'temporary password' /var/log/mysqld.log
2024-01-08T16:42:08.778057Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gZdMfw8teo=B
[root@192 ~]# mysql -uroot -p?
Enter password:? ? ? ? #???注意:密码不回显 。输入密码后直接回车

?第十步:重置密码

输入命令:

????????mysql> alter user 'root'@'localhost' ?identified by 'Admin123!';

命令简析:

????????修改? 账户? ‘管理员登录时所使用’@‘登录方式:本地登陆’? ? 设置新的密码? ?‘Admin123!’;??

使用命令?exit 退出然后重新登陆

方法二:yum源

? ? ? ? 下载使用MySQL自己的yum源

在windows端操作:

? ? ? ? MySQL数据库存在多种版本,不同的版本在不同的平台上:?

第一步:登陆? ? https://www.mysql.com? ? 网站,访问DOWNLOADS界面

?

第二步: 下拉界面找到? ??MySQL Community (GPL) Downloads选项? ?点击确认? ? ?

第三步:找到MySQL专属的yum仓库。点击进入。

第四步:由于此时我们使用的时Linux9版本,因此锁定图中选项, Download? 点击确认

第五步:然后找到如图中选项,鼠标右击,选择复制链接:

https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm

在Linux端操作:

第六步:进入Linux命令窗口输入wget? ?链接? ?然后回车

[root@server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm

输入[root@server ~]# ls? 确认是否完成下载

注意:mysql80-community-release-el9-5.noarch.rpm? ? 是MySQL的yum源仓库并非MySQL安装包

第七步:rpm安装MySQLyum仓库

解压:

[root@server ~]# rpm -ivh mysql80-community-release-el9-5.noarch.rpm?

在yum仓库中过滤以下看MySQL是否存在

[root@server ~]# yum list | grep mysql? ?
注意:图中mysql-community-server.x86_64?就是我们所需要的MySQL数据包名——来源为mysql? yum?仓库? ? ??

输入以下命令开始安装

[root@server ~]# ? yum install mysql-community-server.x86_64 ?-y

第八步:后续配置

[root@server ~]# systemctl ?start mysqld? ? ? ? ? ? ? ? # 启动
[root@server ~]# systemctl enable ?mysqld? ? ? ? ? ? # 开机启动
[root@server ~]# systemctl status ?mysqld? ? ? ? ? ? ?#? 查看状态

登陆MySQL

第一步:密码查找

由于MySQL登陆默认需要密码,一般密码在日志文件中可以查看,因此:

[root@server ~]# vim /var/log/mysqld.log? ? 查看密码为? ?#? +t!#lqdkf0%L

或者利用命令直接过滤:

[root@server ~]# grep 'temporary password' /var/log/mysqld.log?
2023-11-26T06:09:47.349189Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: +t!#lqdkf0%L

第二步:登陆

[root@server ~]# mysql -uroot -p
Enter password:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#? 在此处直接粘贴密码? ?+t!#lqdkf0%L? ? ?

????????????????????????注意:密码不回显 。因此粘贴后直接回车

我们还可以使用

????????[root@server ~]# mysql -uroot -p+t!#lqdkf0%L进行登录

注意:但此时我们还需要对密码进行重置,才能进行后续操作,否则就会提示报错

因此我们接下来对密码进行重置。

第三步:重置密码

输入命令:

????????mysql> alter user 'root'@'localhost' ?identified by 'Admin123!';

命令简析:

????????修改? 账户? ‘管理员登录时所使用’@‘登录方式:本地登陆’? ? 设置新的密码? ?‘Admin123!’;??

查看密码制定规则:

????????mysql> show variables like 'validate_password.%';

  mysql> show variables like 'validate_password.%';  
 # 解析:  查看  变量   用于匹配 'validate_password.%';  % :任意结尾
+-------------------------------------------------+--------+
| Variable_name                                   | Value  |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0      |
| validate_password.check_user_name               | ON     |
| validate_password.dictionary_file               |        |
| validate_password.length                        | 8      |   # 密码长度  8为
| validate_password.mixed_case_count              | 1      |   # 包含大小写个数
| validate_password.number_count                  | 1      |   # 包含数字个数
| validate_password.policy                        | MEDIUM |   # 密码验证等级:中级
| validate_password.special_char_count            | 1      |   # 包含的特殊字符个数
+-------------------------------------------------+--------+
8 rows in set (0.04 sec)

修改密码等级以及密码位数:

????????mysql> set global validate_password.policy=low;

????????mysql> set global validate_password.length=6;

此时我们在对密码进行修改:

mysql> alter user 'root'@'localhost' identified by '123456';

第四步:测试

我们退出,然后使用新设置的密码进行登录

mysql> exit
Bye
[root@server ~]# mysql -uroot -p
Enter password:?

此时我们就可以开始执行其他命令了

????????mysql> show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)

查看MySQL服务的端口

????????mysql> show global variables like 'port';

方法三:通用二进制包(重要)

????????生产环境中使用通用二进制包安装

?在windows端操作:

第一步:登陆? ? https://www.mysql.com? ? 网站,访问DOWNLOADS界面

?

第二步:?下拉界面找到? ??MySQL Community (GPL) Downloads选项? ?点击确认? ? ?

第三步:找到MySQL Community Server点击进入。

?第四步:

下载二进制通用安装包:

按照图片调出对应的二进制通用安装包选项,点击确认

单击鼠标输入安装包所需条件及版本号等, 左键直接下载下载。

在Linux端操作:

第五步:使用Xftp将其上传至Linux

????????

在根目录下解压

[root@server /]# tar -xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar?

#? 解压后会显示三个压缩包
mysql-test-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz? ? ? ? ? ? ? # 安装包必须安装
mysql-router-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz

继续解压:

????????[root@server /]# tar -xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz?

绿色版MySQL:

????????解压完成后会出现???mysql-8.0.33-linux-glibc2.17-x86_64-minimal?这一文件,此时MySQL已经可以运行。但运行效果不佳,因此执行以下操作。

第六步:

首先将其移动默认安装文件的路径,

[root@server /]# mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal ?/usr/local/mysql

[root@server mysql]# groupadd ?mysql
[root@server mysql]# useradd? ? ?-r? ? ?-g? ? ?mysql? ? -s? ? ?/bin/false/? ? ?mysql
?# 命令含义,创建一个账户mysql;???-g :将其加入到mysql工作组中?

???????????????????????? -s:该账户所使用的shell存放在/bin/false下(意思为不能登陆)

创建一个目录来存放Mysql所使用的数据文件? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [root@server mysql]# mkdir mysql-files
????????[root@server mysql]# chown mysql:mysql mysql-files/? ? ? ? ? ? ? ? # 为文件配置工作组
????????[root@server mysql]# chmod ?750 mysql-files/? ? ? ? ? ? ? ? ? ? ? ? ? ? # 设置文件所使用的权限

?第七步:对软件进行初始化

? ? ? ? ?[root@server mysql]# bin/mysqld --initialize --user=mysql????????????????

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 产生的初始密码为:??b.elap7pJ+9V

设置支持安全通道传输

? ? ? ??[root@server mysql]# bin/mysql_ssl_rsa_setup?
????????[root@server mysql]# bin/mysqld_safe --user=mysql &? ? ? ? ? ? ? ? ? ? ? ? # 启动mysql

????????????# 调用文件脚本bin/mysqld_safe? ? ? ?执行账户为mysql? ? ? 后台执行:&

????????#?bin/mysqld_safe:为执行脚本文件

????????# bin/mysql:为登陆脚本文件

第八步:

由于二进制通用安装包为绿色软件,因此需要在一个会话链接中开启进程,在另一个会话中登陆

????????使用Xshell在开启一个终端,执行以下命令(原因:现所在的终端正在后台运行MySQL因此无法进行其他输入)?

输入?[root@server mysql]# ps -ef |grep mysql
查看是否有正在运行的MySQL进程? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

进入文件/usr/local/mysql/登陆MySQL

[root@server mysql]# cd /usr/local/mysql/

调用脚本进行MySQL的登陆:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

[root@server mysql]# bin/mysql -uroot -p? ? ? ? ? ? ? ? ? ? ? ? # 会产生报错
bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory? ? ? ? ?# 报错原因:redhat版本较新,版本为/libncurses.so.6。但 mysql要求版本为libncurses.so.5 因此版本不一致才会产生此类报错

[root@server mysql]# find / ?-name 'libncurses*'
/usr/lib64/libncurses.so.6
/usr/lib64/libncurses.so.6.2
/usr/lib64/libncursesw.so.6
/usr/lib64/libncursesw.so.6.2
# 虽然版本不一致但内容一致,因此/usr/lib64/libncurses.so.6也可以使用,解决办法如下:
[root@server mysql]# ln -s /usr/lib64/libncurses.so.6.2 /usr/lib64/libncurses.so.5
?????????????????????????????????????? # 建立软连接
[root@server mysql]# bin/mysql -uroot -p
bin/mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory????????????????????????# 报错原因同上,解决办法同上
[root@server mysql]# find / -name "libtinfo*"
/usr/lib64/libtinfo.so.6
/usr/lib64/libtinfo.so.6.2
[root@server mysql]# ln -s /usr/lib64/libtinfo.so.6.2 /usr/lib64/libtinfo.so.5
[root@server mysql]# bin/mysql -uroot -p? ? ? ? ? ? ? ? ? ? ? ? # 此时就可以正常登陆了

Enter password:?

修改密码:

mysql> ?alter user 'root'@'localhost' ?identified with mysql_native_password by '123456';? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # mysql_native_password:mysql5.7的密码验证插件
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 刷新,不刷新密码无法通过
Query OK, 0 rows affected (0.01 sec)??

此时就看可以利用密码再次登陆 :? 新密码123456

第九步:

由于此时MySQL的运行与登陆不在同一运行窗口内,在显示生产中不现实,因此解决方法如下:

查看此时后台运行的MySQL进程,并将其关闭:

[root@server mysql]# ps? ?-ef? ? |? grep? ? mysql

[root@server mysql]#? kill? -9? ?3284

[root@server mysql]#? kill? -9? ?3366

通过系统管理命令使MySQL启动:

9.1.设置MySQL的配置文件

[root@server mysql]# vim /etc/my.cnf

[client]                   # 客户端设置  
port = 3306                # 设置端口号为3306
socket = /tmp/mysql.sock   # MySQL的套间字存储路径
[mysqld]                   # 服务端
server-id = 1              # 服务端的唯一的编号
port = 3306                # 端口号
basedir = /usr/local/mysql # MySQL主目录存储路径
datadir = /usr/local/mysql/data    # MySQL数据目录    
tmpdir = /tmp                      # 临时目录
socket = /tmp/mysql.sock           # 套接字
character-set-server = utf8mb4     # MySQL内的字符编码
collation-server = utf8mb4_general_ci    # 字符集
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB            # 引擎
log_error = error.log                    # 错误日志

9.2.配置启动脚本:

[root@server ~]# cd /usr/local/mysql/support-files/
[root@server support-files]# ?pwd
/usr/local/mysql/support-files

注意:mysql.server为MySQL的启动脚本

9.3.将MySQL启动文件完全拷贝到/etc/init.d/mysql.server

[root@server support-files]# cp -a mysql.server ?/etc/init.d/mysql.server

没有init.d的原因:没有安装系统启动服务

[root@server support-files]# yum install chkconfig
[root@server support-files]# cp -a mysql.server ?/etc/init.d/mysql.server
再次拷贝时就不会出现报错了

编辑启动文件:

[root@server ~]# vim /etc/init.d/mysql.server?

定位46,47行
?46 basedir=/usr/local/mysql? ? ? ? ? ? ? ? # 启动目录
?47 datadir=/usr/local/mysql/data? ? ? ? ?# 数据目录?

保存退出然后重新加载配置文件

[root@server ~]# systemctl daemon-reload?
[root@server ~]# systemctl start mysql? ?

此时使用[root@server ~]# bin/mysql -uroot -p? 仍会报错

? ? ? ? #原因:bin/mysql -uroot -p不是全局变量,因此我们需要添加全局变量。

编辑~/.bash_profile:

[root@server ~]# vim ~/.bash_profile?

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

[root@server ~]# source ~/.bash_profile? ? ? ? # 执行使其生效

[root@server ~]# bin/mysql -uroot -p? ????????# 此时就可以将MySQL正常启动

**5.容器安装

第一步:

[root@192 ~]# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo?

第二步:查看yum仓库

[root@192 ~]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# ll

第三步:下载安装容器

[root@192 yum.repos.d]# yum ?install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

第四步:启动并配置开机启动

[root@192 yum.repos.d]# systemctl start docker
[root@192 yum.repos.d]# systemctl status docker

扩展:查看容器版本

[root@192 yum.repos.d]# docker version

第五步:

[root@192 yum.repos.d]# docker run hello-world

第六步:运行mysql进程并设置密码

启用第一个MySQL进程:

[root@192 yum.repos.d]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql? ? ?#? ? ?密码为123456? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

启用MySQL进程二:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

[root@192 yum.repos.d]# docker run --name mysqltest2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql? ? ?#? ? ?密码为123456? ? ? ?

查看已开启的进程

[root@192 ~]# docker ps? ? ? ? ?

启用第二个进程并且利用密码登陆

[root@localhost ~]# docker exec -it mysqltest2 /bin/bash

bash-4.4# mysql -uroot -p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Enter password:? ?

# 退出MySQL?

mysql> exit

Bye

bash-4.4# exit

exit

[root@localhost ~]#

文章来源:https://blog.csdn.net/2302_77035737/article/details/135468774
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。