当前位置: 首页 > news >正文

从零学习Linux操作系统 第二十部分 mariadb数据库的管理

一、对于数据库的基本介绍

1.什么是数据库
数据库就是个高级的表格软件

2.常见数据库
Mysql Oracle mongodb db2 sqlite sqlserver …

3.Mysql (SUN -----> Oracle)

4.mariadb (Mysql的一种)

数据库中的常用名词
1.字段 :表格中的表头
2.表 :表格
3.库 :存放表格的目录
4.查询 :对表格中的指定内容进行查看

二、数据库的安装及安全初始化

(一)mariadb的安装

dnf install mariadb-server.x86_64 -y

在这里插入图片描述
启动程序
systemctl enable --now mariadb
在这里插入图片描述

(二)软件的基本信息

启动服务 mariadb.service
默认端口号 3306
主配置文件 /etc/my.cnf.d/mariadb-server.cnf
数据目录 /var/lib/mysql (当需要重新安装mariadb时需要清理此目录或备份)

(三)数据库的安全初始化

1、关闭数据库开放端口

编辑配置文件
在这里插入图片描述
重启服务 systemctl restart mariadb

2、执行安全初始化脚本

数据库安全初始化脚本
mysql_secure_installation
在这里插入图片描述
在这里插入图片描述
设定完密码之后 所有问题全部选是

mysql -uroot -p ## -u 指定登陆用户 -p 密码
在这里插入图片描述

三、数据库的基本管理

首先登陆数据库
mysql -uroot -p
在这里插入图片描述

(一)查看

USE mysql;进入mysql库
SHOW DATABASES;显示库名称
SHOW TABLES;显示库中的所有表
SELECT * FROM user;查询所有数据
SELECT Host,User,Password FROM user;查询指定字段

(二)新建

1、 新建库

CREATE DATABASE westos;

在这里插入图片描述

2、新建表

CREATE TABLE westos.userlist (
在这里插入图片描述
尽量打了(之后 在下一行编写字段信息
再);执行
便于排错
在这里插入图片描述
在这里插入图片描述
插入数据
INSERT INTO westos.userlist VALUES (‘user1’,‘123’);

在这里插入图片描述

(三)更改

1、更改库

在这里插入图片描述
一般情况下不会更改库的名字,容易造成数据混淆

登陆数据目录
在这里插入图片描述
将想要更改的库的名字改掉
在这里插入图片描述

2、更改表

USE westos;进入westos库

在这里插入图片描述
更改表的名字
ALTER TABLE userlist RENAME linux;

在这里插入图片描述
更改表的结构

添加一个年龄(添加一个age字段)
ALTER TABLE userlist ADD age varchar(4) AFTER password;
在这里插入图片描述
放弃一个字段
在这里插入图片描述
更改表头数据
UPDATE user list set age=18;
在这里插入图片描述
指定一个修改
UPDATE userlist set age=20 WHERE username=‘user1’;

在这里插入图片描述

(四)删除

删除用户
DELETE FROM userlist WHERE username=‘user’ AND age=‘18’;
在这里插入图片描述
删除表头数据
ALTER TABLE userlist DROP age;

在这里插入图片描述

删除表
DROP TABLE userlist;
在这里插入图片描述

删除库
DROP DATABASE westos;
在这里插入图片描述

四、数据库的密码管理

(一)数据库密码更改

将数据库的密码从westos 改为lee
mysqladmin -uroot -pwestos password lee
在这里插入图片描述

(二)数据库密码破译

第一步 关闭数据库
systemctl stop mariadb
第二步 启动数据库的安全模式
mysqld_safe --skip-grant-tables &

接下来不需要密码直接可以进入到数据库
在这里插入图片描述
然后 需要更新数据库的信息
更改密码存放的字段的内容

UPDATE mysql.user SET authentication_string=password(‘westos’) WHERE User=‘root’;
在这里插入图片描述
把所有数据库的进程全部过滤出来
ps aux | grep mysql

然后需要结束掉

kill -9 mysql的所有进程
在这里插入图片描述

这样mysql才能重启

重启数据库
systemctl start mariadb

五、数据库的授权操作

CREATE USER lee@‘%’ identified by ‘lee’;
%表示登陆数据库的主机可以是任意主机

CREATE USER lee@‘localhost’ identified by ‘lee’;
localhost表示lee只能再数据库所在的主机中使用

在这里插入图片描述
先建立一个数据库
CREATE DATABASE westos;

再建立一个表
CREATE TABLE westos.userlist (
username varchar(10) not null,
password varchar(50) not null
);
在这里插入图片描述

用lee用户登陆数据库
mysql -ulee -plee
在这里插入图片描述
此时lee用户没有权利查看库
在这里插入图片描述

退出
使用root超级用户登陆并且予之授权
mysql -uroot -p

查看用户的权利
SHOW GRANTS for lee@localhost;
在这里插入图片描述
授权
GRANT INSERT,SELECT ON westos.* TO lee@localhost;
在这里插入图片描述
收回权利 收回INSERT权利
REVOKE INSERT ON westos.* FROM lee@localhost;
在这里插入图片描述

六、数据库的备份及还原

不用进入数据库执行命令
mysql -uroot -p -e “命令”
在这里插入图片描述

备份所有的库
mysqldump -u root -p --all-database

备份 只是需要表不需要里面的数据
mysqldump -u root -p --all-database --no–data

备份指定的库
mysqldump -u root -p westos

输出到文件中
mysqldump -u root -p westos > /mnt/westos.sql
在这里插入图片描述

把数据库中westos库删掉
mysql -uroot -pwestos -e “DROP DATABASE westos;”
在这里插入图片描述

如何将备份出来的westos.sql文件复原

第一种方法 先建立一个库 再将备份文件导入库中

建立一个库
mysql -uroot -pwestos -e “create database westos;”

备份文件导入库中
mysql -uroot -pwestos westos < /mnt/westos.sql

在这里插入图片描述

第二种方法 编辑配置文件
vim /mnt/westos.sql
在这里插入图片描述
再导入
mysql -uroot -pwestos < /mnt/westos.sql

在这里插入图片描述

七、数据库的web控制器

安装phpmyadmin的运行环境

dnf install httpd php php-mysqlnd -y
在这里插入图片描述
开启服务
systemctl enable --now httpd

让火墙运行我们能使用
firewall-cmd --permanent --add-service=http

在这里插入图片描述
将phpmyadmin压缩包解开到默认发布目录

tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -c /var/www/html/
在这里插入图片描述

从文本模板生成配置文件
cp config.sample.inc.php config.inc.php

可以输入自己的ip信息也可以不进行更改

在这里插入图片描述
接下来就可以利用图形控制数据库

在这里插入图片描述

http://www.lryc.cn/news/289788.html

相关文章:

  • 数据脱敏和数据加密有什么区别
  • 主流排序算法
  • MySql的使用方法
  • C#,数据检索算法之三元搜索(Ternary Search)的源代码
  • windbg:常用指令
  • 23. 集合类
  • OpenAI平台:引领人工智能的创新与应用
  • redis原理(五)Lua语言
  • SOHO外贸怎么建网站?做海洋建站的步骤?
  • [论文阅读] |RAG评估_Retrieval-Augmented Generation Benchmark
  • 【Linux】动态库和静态库——动态库和静态库的打包和使用、gcc编译、拷贝到系统默认的路径、建立软连接
  • 【Redis】Redis有哪些适合的场景
  • uniapp上传音频文件到服务器
  • C#-正则表达式
  • 【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新
  • Spring Security 的TokenStore三种实现方式
  • 微信小程序 图片自适应高度 宽度 完美适配原生或者uniapp
  • Go语言基础之反射
  • MySQL十部曲之六:数据操作语句(DML)
  • Quartus生成烧录到FPGA板载Flash的jic文件
  • CSS 多色正方形上升
  • 《HelloGitHub》第 94 期
  • uniapp 实现路由拦截,权限或者登录控制
  • [GXYCTF2019]BabySQli1
  • 【架构】Docker实现集群主从缩容【案例4/4】
  • 【ArcGIS微课1000例】0097:栅格重采样(以数字高程模型dem为例)
  • 【技术分享】Ubuntu 20.04如何更改用户名
  • LabVIEW振动信号分析
  • 清理Docker环境
  • oracle等保测评