mysql数据库的基本管理

本文详细介绍了数据库的基本概念,包括数据库、表、库、查询等,并重点讲解了如何安装与启用MariaDB,进行基本操作如查看、安全初始化、新建与删除数据库、备份与恢复,以及数据安全管理和授权设置。还涉及了PHPmyadmin的安装和使用实例。
摘要由CSDN通过智能技术生成

一、数据库的介绍

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

2.常见数据库

Mysql Oracle mongodb  db2 sqlite sqlserver .......
3.Mysql (SUN -----> Oracle)
4.mariadb 是数据库服务器

数据库中的常用名词

字段      :表格中的表头
表          :表格
库          :存放表格的目录
查询      :对表格中的指定内容进行查看

二、数据库的启用

1.mariadb的安装

 systemctl enable --now mariadb  ##数据库开启   在/var/lib/mysql 有其相关配置文件

2.软件基本信息 

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

三、数据库的基本管理

1.查看

mysql   

SHOW DATABASES;      ##显示库名称

SELECT * FROM  mysql.user; ##查询所有数据 

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

 USE mysql; ##进入mysql库

SHOW TABLES; ##显示库中的所有表 

SELECT Host,Password FROM mysql.user WHERE User='root'; ##查看指定的Host ,Password其中用户字符为root

 SELECT Host,Password FROM mysql.user WHERE Host='localhost' AND User='root';##查看指定的Host ,Password其中指定用户字符为root和localhost

netstat -antlupe | grep mysql 端口号为3306

2.数据库的安全初始化

 (1)关闭数据库开放端口

vim /etc/my.cnf.d/mariadb-server.cnf  写入skip-networking=1 ##关闭网络连接,只监听本地客户端

查询不到端口 

(2)执行安全初始化脚本

  mysql           ##默认不需要密码,初始化完毕后需要

  mysql_secure_installation##执行安全初始化脚本,之后设定权限密码

 mysql -u root -p root## -u 指定登陆用户 -p 密码

 mysql -u root -pwestos(一般不用,密码被泄漏)

3.新建和删除
CREATE DATABASE westos;       ##新建westos库


CREATE TABLE linux (                    ##新建表 
username varchar(6) not null,  ##用户名的可变长度为6,不允许出现重复
password varchar(30) not null
);


DESC linux;           ##显示表结构

INSERT INTO linux VALUES ('user1','123'),('user2','123'); #插入数据


FLUSH PRIVILEGES;                #刷新数据库

##更改westos库名称为westoslinux(改完之后不能更改库里面的表) 必须得重启服务

为了更改库里面的表得重新改回来

 ALTER TABLE linux RENAME userlist; ##表linux重命名为userlist

DESC userlist; ##显示表结构

ALTER TABLE userlist ADD address varchar(20);##在表userlist中添加address这一项

 ALTER TABLE userlist ADD age varchar(4);##添加age 字符可变长度为4

 ALTER TABLE userlist DROP age ##删除age

ALTER TABLE userlist ADD age varchar(4) AFTER username;##添加age在username后面 

  UPDATE userlist SET age='20'; ##设定表中age为20

  UPDATE userlist SET age='25' WHERE username='user2';##设定表中用户user2的age为20

 DELETE FROM userlist WHERE username='user1';##删除用户1

 DROP TABLE userlist;##删除表 

DROP  DATABASE westos; ##删除库

4.数据库的备份 

查看数据库的状态
systemctl status mariadb


建立实验素材

mysql -u root -p
SHOW DATABASES;
CREATE DATABASE westos;
 CREATE TABLE westos.userlist(
    -> username varchar(10) not null,
    -> password varchar(20) not null
    -> );
INSERT INTO westos.userlist VALUES ('user1','123'),('user2','123');
SELECT * FROM westos.userlist;

mysqldump -uroot -pwestos --all-database ##备份所有数据


mysqldump -uroot -p1westos --all-database --no-data ##只备份结构,无数据
mysqldump -u root -pwestos westos > /mnt/westos.sql##备份到mnt里面

5. 数据恢复

mysql -u root -pwestos -e "DROP DATABASE westos;" ##用户root登陆执行删除数据库westos
mysql -u root -pwestos -e "SHOW DATABASES;;"
mysql -u root -pwestos westos < /mnt/westos.sql ##直接从mnt恢复会报错,因为数据库westos已经不存在

方法一:

mysql -u root -pwestos -e "CREATE DATABASE westos;;" ##必须先创建一个库;
mysql -u root -pwestos westos < /mnt/westos.sql  ##把/mnt里面的内容恢复过去

同时也会把库里面的表也恢复过来了

 方法二:
vim /mnt/westos.sql写入CREATE DATABASE westos;
                                           USE westos;


mysql -u root -pwestos  < /mnt/westos.sql

6 .数据密码管理

(1)数据密码更改
mysqladmin -u root -pwestos password lee ##修改密码
mysql -uroot -plee  ##登陆

 (2)数据库密码破解

systemctl stop mariadb.service
mysqld_safe --skip-grant-tables & ##开启单元模式,跳过授权表

 mysql
SELECT * FROM mysql.user;

UPDATE mysql.user SET authentication_string='westos'  WHERE User='root';##当使用过mysladmin更改过密码 的用authentication_string

UPDATE mysql.user SET Password='westos' WHERE User='root';##当未使用过mysladmin更改过密码的用Password

显示的明文密码缺乏安全性

 UPDATE mysql.user SET authentication_string=password('westos') WHERE User='root';

显示的密码为加密字符

 flush privileges;

之后ps aux | grep mysql
       kill -9 mysql的所有进程

systemctl restart mariadb 修改生效

7.授权管理 

 vim /etc/my.cnf.d/mariadb-server.cnf 修改skip-networking=0

重启服务;查看端口是否被占用 ;阻止火墙

 mysql -u root -pwestos -e "CREATE USER lee@localhost identified by 'lee';" ##创建本地用户lee密码为lee  只能用localhost登陆
mysql -u root -pwestos -e "CREATE USER linux@'%' identified by 'lee';"##linux可以通过网络或localhost登陆

 测试:

 mysql -u linux  -plee 可以登录 

用其他主机登录时 mysql -ulinux -plee -h172.25.254.200 可以登录

用户lee登陆进去之后SHOW DATABASES; 看不了没有权限

 mysql -uroot -pwestos -e "GRANT SELECT ON westos.* TO lee@localhost;" ##把westos库的所有的查询权限授权给用户lee
mysql -uroot -pwestos -e "SHOW GRANTS FOR lee@localhost;" ##查看授权

 INSERT INTO westos.userlist VALUES('user3','123');##但是写入不了内容,没有权限

 mysql -uroot -pwestos -e "GRANT DROP,INSERT ON westos.* TO lee@localhost;"##加入删除,写入的授权
mysql -uroot -pwestos -e "SHOW GRANTS FOR lee@localhost;" ##查看授权

 mysql -uroot -pwestos -e "REVOKE DROP ON westos.* FROM lee@localhost;"##回收删除的权限

 mysql -uroot -pwestos -e "DROP USER linux@'%';"##删除用户linux

8.phpmyadmin的安装

phpmyadmin是以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具;

netstat -antlupe | grep 80 ##先查看端口有没有被占用
dnf install httpd php php-mysqlnd -y

 systemctl enable --now httpd ##如果报错可以查看journalctl -xe查看报错地址

tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ##解压安装包
rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2##解压完之后删除安装包 

mv phpMyAdmin-3.4.0-all-languages mysqladmin##名字改为mysqladmin 

 less  README

 less Documentation.txt 看到

cp config.sample.inc.php config.inc.php ##复制模板文件到config.inc.php 

测试:浏览器中输入172.25.254.200/mysqladmin
root用户登录切换为中文
 

插入用户lee ,密码123  

 

 在shell 中可以看到表的内容

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值