【Linux学习笔记22】mysql数据库的基本管理

1. 数据库的介绍

  1. 什么是数据库
  • 高级表格软件
  • 以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合
  • 是依照某种数据模型组织起来并存放二级存储器中的数据集合
  1. 常见数据库
MySQL Oracle MongoDB
DB2 sqlite SqlServer
  1. mysql 介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。

  1. mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

2. 安装mysql并启用

  1. 安装

dnf search mariadb:查找数据库

dnf install mariadb-server.x86_64 -y:安装数据库

  1. 查看配置文件

rpm -qc mariadb-server

  1. 启用数据库服务

systemctl enable --now mariadb

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 软件基本信息

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

4. 数据库的安全初始化

4.1 关闭数据库开放端口

  1. vim /etc/my.cnf.d/mariadb-server.cnf:编辑主配置文件
skip-networking=1
#关闭数据库开放端口
  1. systemctl restart mariadb.service:重启数据库服务
  2. netstat -antlupe | grep mysql:查询数据库端口(此命令查询不到端口
netstat参数
参数 解释 参数 解释
-a 显示所有选项
(默认不显示LISTEN相关)
-t 仅显示tcp选项
-u 仅显示udp选项 -n 拒绝显示别名
(能显示数字的全部转化为数字)
-l 仅列出有在Listen(监听)的服务状态 -p 显示建立相关链接的程序名
-r 显示路由信息、路由表 -e 显示扩展信息
-s 按各个协议进行统计 -c 每隔固定时间,执行该netstat命令

在这里插入图片描述
在这里插入图片描述

4.2 执行安全初始化脚本

  1. mysql_secure_installation:初始化
  2. mysql -u用户名 -p密码:登陆数据库(可不明文输入密码)
#登陆数据库方式
mysql -u用户名 -p
mysql -u用户名 -p -e "数据库命令"
mysql -u用户名 -p 数据库名 -e "数据库命令"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 数据库基本管理

5.1 数据库查看

  1. SHOW DATABASES;:显示数据库名称
  2. USE 数据库名;:进入数据库
  3. SHOW TABLES;:显示数据库中的表
  4. SELECT * FROM 数据库名.表名;:查询表中所有数据(已经进入该数据库则可以不加数据库名)
  5. SELECT 字段1,字段2 FROM 数据库名.表名;:查询指定字段(已经进入该数据库则可以不加数据库名)
  6. DESC 表名;:显示表结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 数据库新建

  1. CREATE DATABASE 数据库名;:新建数据库

  2. 新建表

USE westos;	进入数据库
CREATE TABLE 表名(
	-> 字段 类型 是否为空,
    -> Username varchar(10) not null,
    -> Password varchar(10) not null
    -> );
# '->'不是sql语句的一部分,表示一个新行
# ';'表示指令结束
  1. DESC linux;:显示表结构`
  2. 插入数据
#给所有字段添加
INSERT INTO 表名 VALUES('值1','值2',...,'值n');
INSERT INTO 表名 VALUES ('值1','值2',...,'值n'),('值1','值2',...,'值n')...;#添加多组值
#给指定字段添加
INSERT INTO 表名 (字段1,字段2) VALUES('值1','值2');
INSERT INTO 表名 (字段1,字段2) VALUES ('值1','值2'),('值1','值2')...;#添加多组值
  1. FLUSH PRIVIEGES;:刷新数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 数据库更改

  1. ALTER TABLE 原表名 RENAME 新表名;:更改表名称
  2. ALTER TABLE 表名 ADD 字段 类型;:添加字段
  3. ALTER TABLE 表名 ADD 字段 类型 AFTER 已有字段;:添加字段(位置在已有字段之后)
  4. UPDATE 表名 SET字段1=‘值1’,字段2=‘值2’ WHERE 字段=‘值’;:更改数据
  5. ALTER TABLE 表名 DROP 字段名;:删除字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4 数据库删除

  1. DELETE FROM 表名 WHERE 字段=‘值’;:删除指定数据
#指定多个条件
DELETE FROM 表名 WHERE 字段1='值' AND 字段2='值';
  1. DROP TABLE 数据库名.表名;:删除表
  2. DROP DATABASE 数据库名;:删除数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 数据密码管理

6.1 数据库密码更改

mysqladmin -uroot -p password 新密码

在这里插入图片描述

6.2 数据库密码破解

  1. systemctl stop mariadb.service:关闭数据库服务
  2. mysqld_safe --skip-grant-tables &:启动数据库时跳过数据库的授权表
  3. mysql:登陆
#修改密码(rhel8中)
UPDATE mysql.user SET authentication_string=password('新密码') WHERE User='root';
#修改密码(rhel7中)
UPDATE mysql.user Password=password('新密码') WHERE User='root';
#########
password()是为了防止密码裸漏,进行加密处理
  1. ps aux | grep mysql:查询mysql进程
  2. kill -9 进程号:关闭mysql进程
  3. systemctl enable --now mariadb:开启服务

在这里插入图片描述
在这里插入图片描述

7. 用户授权

7.1 创建本地用户

  1. CREATE USER 用户名@localhost identified by ‘该用户密码’;:只能用lcalhost登陆
  2. SELECT User FROM mysql.user;:查看用户

在这里插入图片描述
在这里插入图片描述

7.2 管理用户权限

  1. SHOW GRANTS FOR 用户名@localhost;:查看用户权限
  2. GRANT 权限1,权限2 ON 数据库名.* TO 用户名@localhost;:赋予用户权限(* 代表该库下所有表)
  3. REVOKE 权限1,权限2 ON 数据库名.* FROM 用户名@localhost;:收回用户权限

在这里插入图片描述

7.3 删除用户

DROP USER 用户名@localhost;:删除用户

在这里插入图片描述

7.4 创建网络用户(不建议创建)

  1. CREATE USER 用户名@’%’ identified by ‘该用户密码’;:创建用户(可以通过网络或localhost登陆)
#直接执行创建命令
mysql -uroot -p -e "CREATE USER 用户名@'%' identified by '该用户密码';"
  1. vim /etc/my.cnf.d/mariadb-server.cnf:修改主配置文件(打开数据库开放端口)
#skip-networking=1	注释掉(打开端口)
  1. systemctl restart mariadb.service:重启服务
  2. netstat -antlupe | grep mysql:查询数据库端口
  3. mysql -u用户名 -p密码 -h访问的数据库主机IP:远程或本地访问数据库
  • 在node1中创建网络用户zynet

在这里插入图片描述
在这里插入图片描述

  • 在node2中访问node1数据库

在这里插入图片描述

8. 数据库备份

8.1 数据库备份方法

  1. mysqldump -u用户名 -p --all-databases:备份所有数据
  2. mysqldump -u用户名t -p --all-databases --no-data:备份所有数据,但是不备份数据内容(只有数据库名 表和字段)
  3. mysqldump -u用户名t -p 数据库名 > /mnt/数据库名.sql:备份数据到指定位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2 恢复数据方法1

  1. mysql -u root -p -e “CREATE DATABASE westos;”:创建数据库
  2. mysql -u root -p westos < /mnt/westos.sql:恢复数据到指定数据库中

在这里插入图片描述

8.2 恢复数据方法2

  1. vim /mnt/westos.sql:修改备份数据库文件(添加创建并进入操作数据库语句)
CREATE DATABASE westos;
USE westos;
  1. mysql -u root -p < /mnt/westos.sql:恢复数据

在这里插入图片描述
在这里插入图片描述

9. Phpmyadmin 图形数据库管理方式 web

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

9.1. 安装

  1. dnf install httpd -y:安装Apache
  2. dnf install php -y:安装php
  3. dnf install php-mysqlnd.x86_64 -y:安装php内置mysql连接驱动
  4. 下载phpMyAdmin到默认发布目录/var/www/html/

在这里插入图片描述

9.2 配置

  1. tar jxf /var/www/html/phpMyAdmin-3.4.0-all-languages.tar.bz2:解压缩
  2. cd /var/www/html/:进入该目录
    mv phpMyAdmin-3.4.0-all-languages myadmin:重命名
  3. cd myadmin/:进入该目录
    cp config.sample.inc.php config.inc.php:复制模板文件
  4. systemctl enable --now httpd:打开httpd服务
    systemctl restart httpd:重启httpd服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.3 访问

firefox访问http://192.168.43.101/myadmin/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10. 重装本地数据库

  1. systemctl stop mariadb:关闭数据库服务
  2. rm -fr /var/lib/mysql/:删除数据目录
  3. dnf reinstall mariadb-server.x86_64 -y:重装数据库

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46069582/article/details/110295061