【运维工程师学习五】数据库

news2024/9/23 7:28:01

【运维工程师学习五】数据库

    • 1、常用的关系型数据库
    • 2、C/S结构
    • 3、MariaDB图形客户端
    • 4、安装MariaDB
    • 5、启动MariaDB及验证启动是否成功
    • 6、验证启动——端口
    • 7、验证启动——进程
    • 8、MariaDB配置文件路径
      • 主配置文件解读:
    • 9、MariaDB的配置选项
    • 10、MariaDB客户端连接
      • 1、在本机,即使root密码为空,客户端一样可以连接的,使用命令`mysql –u root –p` 提示输入密码时直接回车即可进入数据库;
      • 2、修改数据库超管root的密码,除了上述方法,还有另外一种方法,就是进入数据库后通过数据库的更新操作(update)可以实现,具体方法,请看下节“mariadb修改root密码”;
      • 3、允许root用户远程连接(在业务环境中不会这样做,但现在是实验,为客户端连接linux的Mariadb做铺垫),使用命令行客户端进入数据库后执行命令
      • 4、刷新MySQL的系统权限相关表­
    • 11、图形客户端的使用(Navicat为例)
    • 12、默认安装后,系统自带3个数据库
    • 13、mariadb修改root密码
    • 14、客户端常用命令——数据库相关
      • (1)显示已有的数据库
      • (2)创建数据库
      • (3)删除数据库
    • 15、导入数据
    • 16、为业务数据库创建指定的用户
    • 17、客户端常用命令——表相关
    • 18、数据库备份

1、常用的关系型数据库

关系型数据库系统除了全面列出来的还有很多,但最常用的也不外乎:

  • Oracle #闭源、收费,金融行业或其它行业大型公司的选择
  • MySQL #开源、免费,互联网公司的最爱
  • MS SQL Server #闭源、收费,一些互联网公司及传统中小企的选择

注:MySQL已被Oracle公司收购。MySQL原创始人重新开发了一个分支,叫MariaDB,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。CentOS7系统中已经将默认的数据库系统MySQL替换为MariaDB,因此接下来的关于数据库的安装及使用演示均是基于MariaDB。

2、C/S结构

数据库的软件体系结构是C/S(Client/Server,客户端/服务端),要访问或管理数据库必须通过对应的客户端。认清这个问题,有两个好处(以MariaDB为例):

下图中,初学者往往会mariadb.x86_64为数据库,实则它只是客户端;

在这里插入图片描述

  1. mariadb.x86_64数据库客户端
  2. mariadb-server.x86_64才是数据库服务端
  3. 选择最适合自己使用习惯的客户端,有利于提高认知及学习效率。mariadb.x86_64是命令行客户端,初期建议尝试几种图形客户端。

3、MariaDB图形客户端

  1. phpMyAdmin
  2. MySQL Workbench
  3. Adminer
  4. Navicat for MySQL
  5. OmniDB
  6. DataGrip(JetBrains旗)
  7. Dbeaver
  8. SQLyog

4、安装MariaDB

本次安装使用“软件仓库安装法”。同时安装服务端及客户端:

yum install -y mariadb-server mariadb

在这里插入图片描述

5、启动MariaDB及验证启动是否成功

  • 启动、设置开机自动启动、查看状态
systemctl start mariadb

在这里插入图片描述

6、验证启动——端口

netstat -utnlp

在这里插入图片描述

  • 3306是MySQL及MariaDB的默认端口。
  • 端口信息及进程信息均表示数据库MariaDB启动正常。

7、验证启动——进程

ps aux | grep mariadb

在这里插入图片描述

8、MariaDB配置文件路径

主配置文件:/etc/my.cnf #MySQL也是这个,所以说MariaDB完全兼容性!
在这里插入图片描述

vi /etc/my.cnf 

在这里插入图片描述

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

在这里插入图片描述

主配置文件解读:

  1. [***]表示配置分组,如[mysqld]表示从下一行开始至出现 [***]的行,均为服务端的配置行。本文件为默认配置,服务端只设置了两个选项,一个是datadir数据保存路径),一个是socket套接字文件路径);
  2. !includedir表示其它附加的配置文件路径。本例中包含的/etc/my.cnf.d文件夹中凡是以.cnf结尾的文件都会被当数据库的配置文件的一部分。如果这个文件夹中的配置文件定义的选项与主配置文件中有重复,则以该文件夹的配置为准。
  3. 配置文件引入“包含”的概念,一般是为了实现配置文件的分类,提高配置文件的可读性。例如可以把关于服务端的配置选项全部放在server.cnf中,将客户端的配置选项放在client.cnf中。

9、MariaDB的配置选项

在这里插入图片描述

注:
1、关于搜索到的配置举例,请不要盲目复制,因为很多选项都是基于特定的硬件(内存大小及CPU性能);
2、配置的优化是根据自身的业务环境而定,并且是在有性能监控数据及遇到的问题总结做支撑,例如:遇到错误提示“超出连接数”那就要修改最大连接数、遇到有大量请求在等待那就可能要修改最大并发数、发现内存及CPU占用过高那就可能要修改缓存大小,等等;
3、早期不用太热衷于玩弄各个高级配置项,基本配置都够你玩半年(配合web练习),天才除外;

10、MariaDB客户端连接

mysql -u root -p

使用yum安装的mariadb,默认管理员root的密码为空,并且只允许本机连接,不允许远程连接。因此,我们需要为root用户配置密码,方法如下:

1、在本机,即使root密码为空,客户端一样可以连接的,使用命令mysql –u root –p 提示输入密码时直接回车即可进入数据库;

2、修改数据库超管root的密码,除了上述方法,还有另外一种方法,就是进入数据库后通过数据库的更新操作(update)可以实现,具体方法,请看下节“mariadb修改root密码”;

3、允许root用户远程连接(在业务环境中不会这样做,但现在是实验,为客户端连接linux的Mariadb做铺垫),使用命令行客户端进入数据库后执行命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

在这里插入图片描述

123456为密码,上述命令的意思是:允许密码为123456的root用户具有数据库中所有数据库的所有权限。

4、刷新MySQL的系统权限相关表­

FLUSH PRIVILEGES;

在这里插入图片描述

11、图形客户端的使用(Navicat为例)

在这里插入图片描述
在这里插入图片描述
连接成功
在这里插入图片描述

12、默认安装后,系统自带3个数据库

  • information_schema #此数据库提供了访问数据库元数据的方式
  • mysql #核心数据库,存储用户的权限信息等,不可以随意修改其内容
  • performance_schema #此数据库为数据库性能优化提供重要的参考信息,默认关闭
  • test #(有些版本会带)顾名思义,测试数据库,没有内容,可删除

在这里插入图片描述

13、mariadb修改root密码

具体方法:
1、进入etc目录下

cd /etc

2、编辑my.cnf文件

vi my.cnf

3、在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查

[mysqld]
skip-grant-tables     

4、重启数据库

service mysqld restart

5、直接无密码登录数据库

mysql -uroot -p

6、查看数据库并使用mysql数据库表

mysql> show databases;
mysql> use mysql;

7、更新密码

mysql> update user set password=passworD("123456") where user='root';

#注意如果Mysql的版本是5.7及以上的话update语句如下:

update user set authentication_string=passworD("123456") where user='root';

#再执行

FLUSH PRIVILEGES;

8、去my.cnf配置文件中删除使其登录时跳过权限检查的配置
9、重启mysql实现密码登录

service mysqld restart

在这里插入图片描述

在这里插入图片描述

14、客户端常用命令——数据库相关

(1)显示已有的数据库

show databases;

在这里插入图片描述
命令以;结尾
注意database后面有个s,英文中表示复数的意思
整个命令顾名思议就是显示所有数据库,默认共4个数据库,各个数据库的意义前面已作基本介绍。

注:客户端中的命令不支持tab补全;表名及列名可以使用tab补全,但这个功能默认不开启,欲尝试自行搜索我的博客,篇幅问题这里不展开说。

(2)创建数据库

create database mytest;		#mytest为数据库名

(3)删除数据库

drop database mytest;		#mytest为数据库名

注意这里的database没有加s
已经成功创建mytest数据库
上面只是最简单的创建数据库命令,如果需要指定数据库的字符集则需要加相关参数。

15、导入数据

source / sql-dftables.txt		# /root/ sql-dftables.txt为数据库脚本文件

在这里插入图片描述

需要输入完整路径。如果脚本中只有表结构,则只会在数据库中创建表,如果脚本中既有表结构又有数据内容,则都会导入。数据库脚本文件其实就是数据库的各种命令的集合。

导入之前先使用use命令连接指定的数据库,即后面的导入操作就会导入至该数据库。

注:包括后面介绍关于数据库表的操作命令都需要先使用use命令,指定数据库。使用source命令,最后不用;结尾

16、为业务数据库创建指定的用户

为某数据库创建指定用户,基于安全考虑,不使用root用户进行业务操作,建议为业务数据库创建指定的用户,命令如下:

GRANT ALL PRIVILEGES ON mytest.* TO 'test2'@‘localhost'IDENTIFIED BY '12345qwert';

GRANT SELECT,INSERT,UPDATE,DELETE ON mytest.* TO 'test2'@'%'IDENTIFIED BY '12345qwert';

命令解读如下:

  • GRANT后面跟的是权限范围 ALL PRIVILEGES
    表示允许所有权限,而SELECT,INSERT,UPDATE,DELETE表明只允许查、增、改、删四个权限,其它不允许。
  • ON 后面跟的数据库名 mytest.* 表示mystest的所有表都被允许,TO后面@之前表示的是用户名(不带引号)
    @后面跟的是客户端位置(localhost表示仅本机可连,%表示任意远程主机,还可以指定某IP或IP段) BY后面跟的是该用户的密码
    在这里插入图片描述

注:客户端中的命令不区分大小写,只是大家习惯将命令大写,内容小写提高整条命令的可读性。

17、客户端常用命令——表相关

显示数据库中的所有表:

show tables;

关于表的操作命令还有很多,如增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT)不再演示,请自行搜索,如搜索“mysql常用命令”

18、数据库备份

数据库备份方法有很多,这里仅演示自带的备份工具备份完整的数据库(表结构及内容),命令如下:

mysqldump -u root -p mytest > /root/mytest_bak_20230711.sql

mysqldump是一个独立的程序,因此这里看到的是系统命令行环境中。

  • -u root是使用root命令登陆数据库来操作备份动作
  • -p是后面要输入密码,与mysql客户端类似
  • mytest是要备份数据库名
  • root/mytest_bak_20230711.sql是备份的目标文件,这是一个文本文件,只是习惯使用.sql作为文件后缀标识,方便识别。
  • mysqldump还有很多用法,欲了解更多请自行搜索。
  • 备份的文本文件的部分内容。
  • 还原则使用前面介绍的source即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/739600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下 Oracle 12c 安装保姆级图文详解

Windows下 Oracle 12c 安装步骤如下: 1、将压缩包“winx64_12c_database_1of2.zip“和“winx64_12c_database_2of2.zip”解压到同一目录“database”目录。 2、双击“database”目录下的“setup.exe",软件会加载并初步校验系统是否可以达到了数据…

华为云出品《深入理解高并发编程:Java线程池核心技术》电子书发布

系统拆解线程池核心源码的开源小册 透过源码看清线程池背后的设计和思路 详细解析AQS并发工具类 点击下方链接进入官网,右上角搜索框搜索“《深入理解高并发编程:Java线程池核心技术》” 即可获取下载。 https://auth.huaweicloud.com/authui/login…

01-线性表 (数据结构和算法)

要点: 程序 数据结构 算法 一、数据结构的概述 程序 数据结构 算法 数据结构:计算机存储、组织数据的方式 算法:处理数据的方式 1.1 基本概念和术语 1、数据 数据(data):所有能够输入到计算机中…

【Method】稀疏与压缩感知 | 图像稀疏性及压缩感知方法白话讲解

【Method】稀疏与压缩感知 | 图像稀疏性及压缩感知方法白话讲解 文章目录 【Method】稀疏与压缩感知 | 图像稀疏性及压缩感知方法白话讲解1. 为什么图像是可压缩的:图像空间的广阔2. 什么是Sparsity?3.压缩感知:简介4.压缩感知:数…

matlab学习指南(3):最全MATLAB工具箱Toolbox下载地址大汇总

🌅*🔹** φ(゜▽゜*)♪ **🔹*🌅 欢迎来到馒头侠的博客,该类目主要讲数学建模的知识,大家一起学习,联系最后的横幅! 喜欢的朋友可以关注下,私信下次更新不迷路&#xff0…

火车头采集器AI伪原创【php源码】

本文介绍火车头采集器AI伪原创,对于新媒体从业者来说,会写文章是最基本的职业技能,而伪原创是我们经常使用的技能。今天我要讲的是SEO标兵如何在伪原创上创作文章。 首先,原创性永远是最好的,更受读者欢迎。伪原创的出…

Microsoft Dynamics 365:VS2019引用BC发布的SOAP服务

1、搜索网页服务 2、点击新建 3、选择对象类型:页面、单元、查询,输入ID,勾选即可发布服务 4、复制SOAP URL到浏览器里看看是否可以访问,这样就OK的 5、 右键添加服务引用 6、选择高级 7、添加web引用 8、服务地址粘贴进去查找服…

云原生监控——VictoriaMetrics

1.简介 VictoriaMetrics是一个快速高效且可扩展的监控解决方案和时序数据库,可以作为Prometheus的长期远端存储,具备的特性有: 支持prometheus查询api,同时实现了一个metricsql 查询语言支持全局查询视图,支持多prom…

uniapp引用leaflet地图实现方案

最近在做uniapp实现的移动端app,其中一些模块需要gis地图,在最开始的时候我尝试了使用uniapp官方自带的map组件,但是非常不好用。 后来又引用了mars2d来实现,但是发现这种引用方式会出现一个bug,在浏览器当中使用的时候…

Blueprint —— 入门笔记

蓝图比C性能较慢; 蓝图起作用需在场景中创建实例; 在Event Graph内 按住右键,平移界面;滚动滚轮,缩放界面;按住左键节点,移动节点;右击,显示节点对话框;按住…

外部存储器接口(EMIF)

1 接口信号与控制寄存器 EMIF(External Memory Interface)外部存储器接口为DSP芯片与众多外部设备之间提供一种连接方式,EMIF最常见的用途就是同时连接FLASH和SDRAM。EMIF性能优良,跟外部SDRAM和异步器件连接时,具有很大的方便性和灵活性。根…

ModaHub魔搭社区:常用的相似性度量——浮点向量相似性度量和二进制向量相似性度量

目录 常用的相似性度量 浮点向量相似性度量 二进制向量相似性度量 总结 常用的相似性度量 如果没有相似性度量——计算两个向量之间距离的方法,再好的向量数据库也没有用。因为存在许多度量,我们在这里只讨论最常用的子集。 浮点向量相似性度量 最常见的浮点向量相似…

【数据分析 - 基础入门之pandas篇①】- pandas介绍

文章目录 前言一、pandas介绍二、pandas优势2.1 强大的数据结构支撑2.2 优点 三、pandas学习路线结语相关导读 前言 一、pandas介绍 pandas 是 Python 的 核心数据分析支持库 ,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据…

【JUC进阶】11. BlockingQueue

目录 1、前言 2、BlockingQueue 2.1、ArrayBlockingQueue 2.1.1、take() 2.1.2、put() 2.2、LinkedBlockingQueue 2.3、PriorityBlockingQueue 2.4、SynchronousQueue 3、简单使用 3.1、创建ArrayBlockingQueue 3.2、Demo 1、前言 对于并发程序而言,高性…

python: FileHelper

# encoding: utf-8 # 版权所有 2023 涂聚文有限公司 # 许可信息查看: # 描述: # Author : geovindu,Geovin Du 涂聚文. # IDE : PyCharm 2023.1 python 311 # Datetime : 2023/7/9 19:12 # User : geovindu # Product : PyCharm # Proj…

QT事件处理

设计一个闹钟&#xff0c;定时播报内容。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTimerEvent> #include <QDateTime> #include <QMessageBox> #include <QTextToSpeech> #include <QDebug> namespa…

校园闲置物品交易平台的设计与实现(论文+源码)_kaic

摘 要 伴随大数据时代的到来&#xff0c;计算机已成为人们步入个数化生活的必须品。由于计算机技术的成熟&#xff0c;互联网的强大功能也正在被人们以最大限度的开发。通过网络&#xff0c;人们能够足不出户完成校园闲置物品查阅&#xff0c;这在方便学生的同时也解决了在传统…

用于FPGA远程更新的QuickBoot方法

用于FPGA远程更新的QuickBoot方法 用于FPGA远程更新的QuickBoot方法 用于FPGA远程更新的QuickBoot方法1. 远程更新简介2 QuickBoot方案2.1 QuickBoot配置方法2.2 QuickBoot Flash 编程方法 3.QuickBoot实现3.1 Critical Switch World (key point)3.2 QuickBoot存储映射3.3 Bits…

Django ORM中QuerySet常用接口汇总记录

存在模型数据 学生表 课程表 支持链式操作的接口 all接口&#xff1a;用于查询所有数据&#xff0c;相当于&#xff1a;select * from xxx filter接口&#xff1a;根据条件过滤数据 values接口&#xff1a;指定返回的字段&#xff0c;结果是包含 dict 的 QuerySet 对象 valu…

zabbix----代理服务器,高可用集群

文章目录 一、部署 zabbix 代理服务器1.1 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy1.2 部署数据库&#xff0c;要求 MySQL 5.7 或 Mariadb 10.5 及以上版本1.3修改 zabbix-proxy 配置文件1.4 启动 zabbix-proxy1.5 在所有主机上配置 hosts 解析1.6 在 Web 页面配置 …