一. 数据库的介绍
1.什么是数据库
数据库就是个高级的表格软件
2.常见的数据库
mysql oracle mongodb db2 sqlite sqlserver ...,
3 .Mysql (SUN ---->Oracle)
4.mariadb
2.Mysql数据存储结构
2.1 组成:“ 数据库 ” - - -> “ 数据表 ” - - -> “ 数据 ”
2.2 管理数据库所要使用的命令
管理数据库需要使用SQL(结构化查询语言)
SQL语言分为:
1 数据查询语言DQL
按照指定的组合、条件表达式或排序检索已存在的数据库中数据,不改变数据库中数据。
命令:SELECT…FROM…WHERE…
2 数据操纵语言DML
对已经存在的数据库进行元组的插入、删除、修改等操作
命令:INSERT、UPDATE、DELETE
3 数据定义语言DDL
创建、修改或删除数据库中各种对象,包括表、视图、索引等。
命令:CREATE TABLE , CREATE VIEW, CREATE INDEX、ALTER TABLE ,
DROP TABLE , DROP VIEW, DROP INDEX4 数据控制语言DCL
用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视
命令:GRANT、REVOKE、COMMIT、ROLLBACK
二. mariadb的安装
dnf install mariadb-server.x86_64 -y

三. 软件基本信息
mariadb.service 启动服务
3306 默认端口号
/etc/my.cnf 主配置文件
/var/lib/mysql数据目录,当需要重新安装mariadb时需要清理此目录或备份
四. 开启数据库
systemctl enable --now mariadb.service

五. 数据库的安全初始化
5.1 关闭数据库开放端口
编辑主配置文件:vim /etc/my.cnf

编辑完成后需要重新启动mariadb服务
查询端口:
ss -antulpe | grep mysql 和 netstat -antulpe | grep mysql都可以查询端口

第一次查询端口:显示端口号为3306
第二次查询端口:查询不到这是因为我们将数据库端口关闭
5.2 执行安全初始化脚本
mysql_secure_installation
默认登陆不需要密码:

开始安全初始化:


设置完成之后再次进入mysql时需要密码
建议在设置时都设置成y,这样比较安全。
测试:

| -u | 指定用户 |
|---|---|
| -p | 用密码登陆 |
六. 数据库的基本管理
6.1 查看
| SHOW DATABASES; | 显示所与库名称 |
|---|---|
| USE mysql; | 进入mysql库 |
| SHOW TABLES; | 显示库中的所有表 |
| SELECT * FROM user; | 查询所有数据 |
| SELECT Host,User,Password FROM user; | 查询指定字段 |
注意:命令都要大写(规范)并且每一次写完命令之后结尾都要加 ;
SHOW DATABASES; 显示所有数据库

SELECT Host,User,Password FROM mysql.user; 查询指定字段

USE mysql; 进入mysql数据库

SHOW TABLES; 显示库中所有表

SELECT * FROM user; 显示所有数据

6.2 新建
| CREATE DATABASE xuepang; | 新建库 |
|---|---|
| CREATE TABLE xuepang ( | 第一步 |
| username varchar(6) not null, | 第二步 |
| password varchar(30) not null | 第三步 |
| ); | 新建表(完成) |
| DESC xuepang; | 显示表结构 |
| INSERT INTO xuepang VALUES (‘user1’,‘123’); | 插入数据 |
| FLUSH PRIVILEGES; | 刷新数据库 |
CREATE DATABASE xuepang; 新建库

CREATE TABLE xuepang; 新建表格xuepang

注意:如果不加路径你在哪里建立表格,表格就在哪里。
DESC xuepang; 显示xuepang表格的结构

INSERT INTO xuepang.xuepang VALUES (‘user’,‘password’);
给表格中插入相关数据
注意:插入数据的时候要加单引号,并用,号隔开。

6.3 更改
| ALTER TABLE xuepang RENAME xue; | 更改数据表名称 |
|---|---|
| ALTER TABLE xue ADD age varchar(4) AFTER password; | 添加表头 |
| ALTER TABLE xue DROP age; | 删除表头 |
| UPDATE xue SET age=‘18’ WHERE username=‘user2’; | 添加条件给用户 |
ALTER TABLE xuepang RENAME xue; 更改数据表名称

ALTER TABLE xue ADD age varchar(3) AFTER username; 在表格中添加age这一列
注意:在添加时要有一个参考尽量添加在参考物之后。

UPDATE xue SET age=‘18’ WHERE username=‘zyj’; 给xue这个表中的zyj中添加age

注意:在添加时要注意条件相同时加and再加一个条件添加。

ALTER TABLE xue DROP age; 删除age这个表头

6.4 删除
| DELETE from xue where username=‘user’ and age=‘18’; | 删除xue表中zyj的数据 |
|---|---|
| DROP TABLE xue; | 删除xue这个表格 |
| DROP DATABASE xuepang; | 删除xuepang这个数据库 |
DELETE from xue WHERE username=‘user’ and age=‘18’; 删除

DROP TABLE xue; 删除xue这个表格

DROP DATABASE xuepang; 删除xuepang这个数据库

七. 数据密码管理
修改密码:一共分为两种。
第一种:数据密码更改

第二种:数据库密码破解
先停止mariadb服务
systemctl stop mariadb.service 停止mariadb服务

mysqld_safe --skip-grant-tables &
将服务打入后台进行操作(做这一步之后mysql不需要密码便可以进入)
注意:一定要将服务关闭之后再输入命令

第一步:UPDATE mysql.user SET Password=password(‘lee’) WHERE User=‘root’;
第二步:UPDATE mysql.user SET authentication_string=password(‘lee’) WHERE User=‘root’;
注意:rhel7修改时需要两步都进行而rhel8只需要进行第二步
修改密码修改的时认证密码和用户密码;
注意:Password=password(’***’)表示密码为一串字符。


进入mysql后输入命令后回车(Enter)
UPDATE mysql.user SET authentication_string=password(‘lee’) WHERE User=‘root’;

退出之后,关闭mariadb的所有进程

注意:一定要关闭mariadb之前的所有进程不然服务无法启动或密码修改不成功。
启动mariadb服务
测试新密码
kill -9 mysql 的所有进程
systemctl start mariadb

八. 用户授权
| CREATE USER xue@localhost identified by ‘westos’; | 只能用localhost登陆 |
|---|---|
| CREATE USER xue@% identified by ‘westos’; | 可以通过网络或localhost 登陆 |
| GRANT INSERT,SELECT ON xuepang.* TO xue@localhost; | 给用户读和写的权限 |
| SHOW GRANTS for xue@localhost; | 查看用户权限 |
| REVOKE SELECT ON xuepang.* FROM lee@localhost; | 删除用户的查看权限 |
| DROP user xue@localhost; | 删除用户 |
CREATE USER xue@localhost identified by ‘westos’;
创建xue这个用户,只能用localhost登录

CREATE USER xue@% identified by ‘westos’;
注意:可以通过网络登录客户端,访问mysql。
GRANT INSERT,SELECT ON xuepang.* TO xue@localhost;
给用户xue读和写的权限

REVOKE SELECT ON xue.* FROM xue@localhost; 删除用户的部分权限

SHOW GRANTS for xue@localhost; 查看用户的所有权限

DROP user xue@localhost; 删除用户

九. 数据库的备份与恢复
9.1 数据库的备份
注意:设置备份的时候要退出mysql
mysqldump -uroot -pwestos --all-database
备份root用户的所有数据

mysqldump -uroot -p123 --all-database --no-data
备份root用户的所有数据,(–no-date)不保存数据,只保存数据表。

mysqldump -uroot -pxuehaha xue 备份root用户下的xue数据库

mysqldump -uroot -pxuehaha xue > /mnt/xue.sql
备份root用户中xue数据库中的所有数据到/mnt/xue.sql中

9.2 数据库的恢复
第一种方式:
mysql -uroot -p123 -e "create database xue;"
先建立xue数据库
mysql -uroot -p123 xue < /mnt/xue.sql
将备份好的数据导入到xue数据库中

第二种方式:
编辑备份好的数据库
vim /mnt/xue.sql

写入:
CREATE DATABASE xue;
USE xue;
注意:创建和切换数据库都要写在最前面,写在中间或后面将无法生效。
写完每一句话之后都要加上 ;符号。

检测是否成功:

十. phpmyadmin 的安装(数据库的管理工具)
可以通过下方链接下载phpmyadmin也可以通过官网下载
链接:https://pan.baidu.com/s/1xMHrdDsZHGAhbxhMbqYf7Q
提取码:xue1
安装所需要软件php-mysqlnd和php
安装php-mysqlnd
dnf install php-mysqlnd.x86_64

安装php
dnf install php

可以用php -m查看服务都支持什么
php -m

分解下载好的压缩包到/var/www/html中使得可以网络访问
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/

由于目录名称过长可以对目录进行改名
注意:下面这一步操作可以不操作
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin

进入目录读取README这个文件
less README

查看版本是否符合要求
rpm -qa | grep php
rpm -qa | grep mariadb

版本如下:
都符合条件


根据文件中的提示进行下一步操作

less Documentatin.txt
进入之后找到快速安装(如下)

根据提示复制文件

设置完成之后重新启动httpd服务
systemctl restart httpd
测试:
进入网页输入ip/mysqladmin
显示以下界面代表设置成功

注意:当未出现以下界面时有可能以下几点错误
1.火墙未添加http服务
修改方法:

也可以直接关闭火墙
2.输入ip不正确

3.http的端口出现问题
查看http配置文件

默认为80端口

如果不是80端口修改为80重启服务即可
十一. 在网页对mysql数据表进行添加和修改
输入用户和密码登录

‘
当用户名和密码输入正确后进入以下界面

如何快速新建一张表格
在设置之前先进入数据库中

设置标的名称,字段

设置字段,类型和长度

注意:设置完成点击保存或执行后刷新页面数据表即可出现
对创建好的数据表进行修改
点击插入

写入你想要插入的数据

点击执行后,可以看到修改的命令

当插入的数据需要更改或者其他操作时
可以对数据进行编辑,复制和删除

点击编辑对zyj用户的密码进行修改
修改好后点击执行即可

修改密码所执行的命令

修改成功

在网页中修改的所有数据在主机中也可查到

本文详细介绍Mysql数据库的管理与操作,涵盖数据库的安装、基本管理、密码管理、备份与恢复、用户授权等内容,同时提供了数据库的常用SQL命令,如数据查询、数据操纵、数据定义和数据控制语言的使用。
613

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



