西河刘卡车医 发表于 2024-8-25 12:23:09

云计算第三阶段---DBA数据库管理

Day1

一.数据库概述

        计算机中数据存放的堆栈,可以按数据类型划分数据库,又可以在数据库中划分更细节的分类存放到相应的表中。
抽象来说就是生活中的菜市场、五金店之类的场所,根据用途开设;划分广泛的还有百货商场、批发市场等。
https://i-blog.csdnimg.cn/direct/2513460f44a34155a73680cd7d56af04.jpeghttps://i-blog.csdnimg.cn/direct/5bbf66a129d44f788dfba631f9846013.jpeg
生活中的数据包罗 图片、文字、视频、音乐等各种各种渠道信息。
数据库常见格式:.sql               #方便后续学习过程中,数据库导入导出内容测试,

常见数据库体系有以下几种:

https://i-blog.csdnimg.cn/direct/3a772ea788964530911c31aa0161e207.png
我上大学时间使用的是MySQL和Tomcat两种类型,同砚们想要下载保举都下个免费版,大概开源的免费版。因为在工作中有的数据库软件公司发现你用的是破解版,时机到了会找你索要补偿。
 ̄□ ̄||
数据库类型分为:

https://i-blog.csdnimg.cn/direct/01a5e0d3b1ec42a89a34dcbc95bc4c08.png
#tomcat图形数据库,就需要建模,而建模需要换成收费版,有包罗建模的更多功能#
https://i-blog.csdnimg.cn/direct/0f3e464f155947679fc89231b12f14d8.png
二.摆设MySQL服务

https://i-blog.csdnimg.cn/direct/694ff0ffd1ac49018c4689aad1760f32.png
特点:

https://i-blog.csdnimg.cn/direct/7bea70461faf42abb771a5ea7b307046.png
摆设MySQL环境:

1 案例1:构建MySQL服务器

1.1 问题


[*]在IP地点192.168.88.50主机和192.168.88.51主机上摆设mysql服务
[*]训练必备命令的使用
1.2 方案

准备2台假造机,要求如下:
表-1
https://i-blog.csdnimg.cn/direct/fd85fec1245c4d6a831de3be6c4e4572.png
#训练环境中,记得配置yum源、关闭selinux和防火墙
1.3 步调
步调一:安装软件

命令操纵如下所示:
#装mysql-server自动补全依赖,以防万一,就一起下。
mysql-server 提供服务软件 
mysql 提供命令软件
//安装提供服务和命令软件
# yum -y install mysql-server  mysql 
软件已安装
# rpm -q mysql-server  mysql
mysql-server-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64
mysql-8.0.26-1.module+el8.4.0+652+6de068a7.x86_64
#
//查看软件信息
# rpm -qi mysql-server 
Name        : mysql-server
Version     : 8.0.26
Release     : 1.module+el8.4.0+652+6de068a7
Architecture: x86_64
Install Date: 2023年03月13日 星期一 12时09分38秒
Group       : Unspecified
Size        : 126674945
License     : GPLv2 with exceptions and LGPLv2 and BSD
Signature   : RSA/SHA256, 2021年09月22日 星期三 07时27分14秒, Key ID 15af5dac6d745a60
Source RPM  : mysql-8.0.26-1.module+el8.4.0+652+6de068a7.src.rpm
Build Date  : 2021年09月22日 星期三 07时06分32秒
Build Host  : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : infrastructure@rockylinux.org
Vendor      : Rocky
URL         : http://www.mysql.com
Summary     : The MySQL server and related files
Description :
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MySQL server and some accompanying files and directories.
# systemctl  start  mysqld  //启动服务
# systemctl  enable  mysqld  //开机运行
         
步调二:查看端标语和历程名


[*]# ps -C mysqld //仅查看mysqld历程
[*]PID TTY TIME CMD
[*]21912 ? 00:00:00 mysqld
[*]#
[*]# ss -utnlp | grep 3306 查看端口
[*]tcp LISTEN 0 70 *:33060 *:* users:(("mysqld",pid=21912,fd=22))
[*]tcp LISTEN 0 128 *:3306 *:* users:(("mysqld",pid=21912,fd=25))
[*]#
[*]或
[*]# netstat -utnlp | grep mysqld //仅查看mysqld历程
[*]tcp6 0 0 :::33060 :::* LISTEN 21912/mysqld
[*]tcp6 0 0 :::3306 :::* LISTEN 21912/mysqld
[*]#
#MySQL 8中的3306端口是MySQL服务默认使用的端口,主要用于建立客户端与MySQL服务器之间的连接。
支持协议: TCP。 
#两个配置文件都是可以tab补全的
主配置文件位置: /etc/my.cnf.d/mysql-server.conf   

错误日记文件: /var/log/mysql/mysqld.log

步调三:连接服务。

说明: 数据库管理员本机登陆默认没有密码

[*]# mysql //连接服务
[*]Welcome to the MySQL monitor. Commands end with ; or \g.
[*]Your MySQL connection id is 8
[*]Server version: 8.0.26 Source distribution
[*]
[*]Copyright (c) 2000, 2021, Oracle and/or its affiliates.
[*]
[*]Oracle is a registered trademark of Oracle Corporation and/or its
[*]affiliates. Other names may be trademarks of their respective
[*]owners.
[*]Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
[*]mysql> 登陆后的提示符
[*]mysql> exit //断开连接
[*]Bye
[*]#
步调四:配置第2台数据库服务器MySQL51。
命令操纵如下所示:

[*]# yum -y install mysql-server mysql
[*]# systemctl start mysqld
[*]# systemctl enable mysqld
[*]# mysql
[*]mysql> exit
[*]Bye
[*]#
三.基础查询语句

MySQL语句规范:

-P: 数据服务器端口   -h:IP地点  。 exit:退出数据库  ctrl+D也可以退出。
1.不区分大小写。   2. 语句以 “ ;” ,  “\g”,  “\G” 结尾。 
3.注释 : 
单行注释 :“ -- ”           多行注释:  /*  内容   /*
SQL语句分类

DQL查询语句DML 操纵语言DDL 定义语言 TCL 事件控制语言DCL 控制语言【不修改自己数据】selectinsert插入数据、update更新数据、delete删除数据。create、alter、 drop。 针对:表库索引 commit提交 ,rollback:回滚savepoint:设置保存点。
set transaction 设置事件特性
grant:授予权限。
revoke:打消权限
查看MySQL版本: select version();  

查看体系时间: select now();

查看当前用户: select  user();


https://i-blog.csdnimg.cn/direct/0e7dfb77a31e409e8c97eb293f448f4e.png
脚本案例:


[*]# mysql //连接服务
[*]mysql> select version() ; //查看数据库软件版本
[*]+-----------+
[*]| version() |
[*]+-----------+
[*]| 8.0.26 |
[*]+-----------+
[*]1 row in set (0.00 sec)
[*]
[*]mysql> select user() ; //查看登陆的用户和客户端地点
[*]+----------------+
[*]| user() |
[*]+----------------+
[*]| root@localhost | 管理员root本机登陆
[*]+----------------+
[*]1 row in set (0.00 sec)
[*]mysql> show databases; //查看已有的库
[*]+--------------------+
[*]| Database |
[*]+--------------------+
[*]| information_schema |
[*]| mysql |
[*]| performance_schema |
[*]| sys |
[*]+--------------------+
[*]4 rows in set (0.00 sec)
[*]
[*]mysql>
以下是MySQL自带数据库介绍
默认4个库 不可以删除,存储的是 服务运行时加载的不同功能的程序和数据。
information_schema:是MySQL数据库提供的一个假造的数据库,存储了MySQL数据库中的相关信息,比如数据库、表、列、索引、权限、角色等信息。它并不存储实际的数据,而是提供了一些视图和存储过程,用于查询和管理数据库的元数据信息。
mysql:存储了MySQL服务器的体系配置、用户、账号和权限信息等。它是MySQL数据库最基本的库,存储了MySQL服务器的核心信息。
#MySQL数据库中有user表,内里有一个user表,想要在其他软件连接MySQL数据库,就需要设置该表的user=root 位置,host的localhost:当地  设置为 % . 意思:全部呆板都可以登录#
performance_schema:存储了MySQL数据库的性能指标、事件和统计信息等数据,可以用于性能分析和优化。
sys:是MySQL 8.0引入的一个新库,它基于information_schema和performance_schema视图,提供了更方便、更直观的方式来查询和管理MySQL数据库的元数据和性能数据。

[*]mysql> select database(); //查看当前在谁人库里 null 表示没有在任何库里
[*]+------------+
[*]| database() |
[*]+------------+
[*]| NULL |
[*]+------------+
[*]1 row in set (0.00 sec)
[*]mysql> use mysql ; //切换到mysql库
[*]mysql> select database(); // 再次显示所在的库
[*]+------------+
[*]| database() |
[*]+------------+
[*]| mysql |
[*]+------------+
[*]1 row in set (0.00 sec)
[*]mysql> show tables; //显示库里已有的表
[*]+------------------------------------------------------+
[*]| Tables_in_mysql |
[*]+------------------------------------------------------+
[*]| columns_priv |
[*]| component |
[*]| db |
[*]| default_roles |
[*]| engine_cost |
[*]| func |
[*]| general_log |
[*]| global_grants |
[*]| gtid_executed |
[*]| help_category |
[*]| help_keyword |
[*]| help_relation |
[*]| help_topic |
[*]| innodb_index_stats |
[*]| innodb_table_stats |
[*]| password_history |
[*]| plugin |
[*]| procs_priv |
[*]| proxies_priv |
[*]| replication_asynchronous_connection_failover |
[*]| replication_asynchronous_connection_failover_managed |
[*]| replication_group_configuration_version |
[*]| replication_group_member_actions |
[*]| role_edges |
[*]| server_cost |
[*]| servers |
[*]| slave_master_info |
[*]| slave_relay_log_info |
[*]| slave_worker_info |
[*]| slow_log |
[*]| tables_priv |
[*]| time_zone |
[*]| time_zone_leap_second |
[*]| time_zone_name |
[*]| time_zone_transition |
[*]| time_zone_transition_type |
[*]| user |
[*]+------------------------------------------------------+
[*]37 rows in set (0.00 sec)
[*]mysql> exit ; 断开连接
[*]Bye
[*]#
设置数据库登录账号密码

案例2:密码管理

2.1 问题

1) 在192.168.88.50主机做如下训练:

[*]设置root密码为123
[*]修改root密码为 456
[*]破解root密码为 123456
设置root密码为123


[*]# mysqladmin -uroot -p password "123"
[*]Enter password: //敲回车
[*]mysqladmin: Using a password on the command line interface can be insecure.
[*]Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety
[*]#设置完成后,不能直接用MySQL 进入数据库。需要使用用户密码。
修改root密码为 456


[*]# mysqladmin -uroot -p123 password "456"
[*]mysqladmin: Using a password on the command line interface can be insecure.
[*]Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
#修改新密码后,旧密码取消,需要设置新密码登录。
破解root密码

在mysql50主机做此训练
修改主配置文件

[*]# vim /etc/my.cnf.d/mysql-server.cnf
[*]
[*]skip-grant-tables //手动添加此行 作用登陆时不验证密码
[*]……
[*]……
[*]:wq
[*]# systemctl restart mysqld //重启服务 让服务以新配置运行
############配置了新东西,都需要重新启动服务才能看到效果。
连接服务

[*]# mysql
[*]Welcome to the MySQL monitor. Commands end with ; or \g.
[*]Your MySQL connection id is 7
[*]Server version: 8.0.26 Source distribution
[*]
[*]Copyright (c) 2000, 2021, Oracle and/or its affiliates.
[*]
[*]Oracle is a registered trademark of Oracle Corporation and/or its
[*]affiliates. Other names may be trademarks of their respective
[*]owners.
[*]Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
查看存放密码的表头名

[*]Mysql> desc mysql.user ;
删除不知道的密码

[*]mysql> update mysql.user set authentication_string="" where user="root" and host="localhost";
删除后的效果

[*]mysql> select host , user , authentication_string from mysql.user where user="root";
[*]+-----------+------+-------------------------------------------+
[*]| host | user | authentication_string |
[*]+-----------+------+-------------------------------------------+
[*]| localhost | root |                                          |
[*]+-----------+------+-------------------------------------------+
[*]1 row in set (0.01 sec)
[*]
[*]mysql> exit; 断开连接
编辑配置文件 

[*]# vim /etc/my.cnf.d/mysql-server.cnf
[*]
[*]#skip-grant-tables //破完密码需要添加注释。
[*]:wq
[*]# systemctl restart mysqld //重启服务 作用让注释生效
无密码登陆

[*]# mysql
[*]Welcome to the MySQL monitor. Commands end with ; or \g.
[*]Your MySQL connection id is 8
[*]Server version: 8.0.26 Source distribution
[*]Copyright (c) 2000, 2021, Oracle and/or its affiliates.
[*]Oracle is a registered trademark of Oracle Corporation and/or its
[*]affiliates. Other names may be trademarks of their respective
[*]owners.
[*]Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
设置root用户本机登陆密码


[*]mysql> alter user root@"localhost" identified by "123456";
[*]Query OK, 0 rows affected (0.00 sec)
[*]mysql> exit 断开连接
不输密码无法登陆

[*]# mysql
[*]ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用破解的密码登陆

[*]# mysql -uroot -p123456
[*]mysql: Using a password on the command line interface can be insecure.
[*]Welcome to the MySQL monitor. Commands end with ; or \g.
[*]Your MySQL connection id is 10
[*]Server version: 8.0.26 Source distribution
[*]Copyright (c) 2000, 2021, Oracle and/or its affiliates.
[*]Oracle is a registered trademark of Oracle Corporation and/or its
[*]affiliates. Other names may be trademarks of their respective
[*]owners.
[*]Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
[*]mysql>
[*]mysql> 登陆成功
[*]mysql> show databases; 查看已有的库
[*]+--------------------+
[*]| Database |
[*]+--------------------+
[*]| information_schema |
[*]| mysql |
[*]| performance_schema |
[*]| sys |
[*]+--------------------+
[*]4 rows in set (0.01 sec)

[*]# mysql
[*]ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 案例3:筛选条件            

#没有文件的话,可以看看。大概网上下几个来测试。知识点是想通的#
3.1 问题


[*]准备训练环境
[*]训练数值比较
[*]训练范围匹配
[*]训练含糊匹配
[*]训练正则匹配
[*]训练逻辑比较
[*]训练字符比较/空/非空
[*]训练别名/去重/归并
3.2 方案

拷贝tarena.sql文件到mysql50主机里,然后使用tarena.sql创建训练使用的数据。
3.3 步调

实现此案例需要按照如下步调举行。#这是我们上课的讲授环境。#
步调一:准备练---+
步调八:训练别名/去重/归并
定义别名使用 as 或 空格

[*]mysql> select name , homedir from tarena.user;
[*]mysql> select name as 用户名 , homedir 家目录 from tarena.user;
拼接 concat()

[*]mysqlcat(name,"-",uid) as 用户信息 from tarena.user where uid <= 5;
[*]+--------------+
[*]| 
[*]| bin-1 |
[*]| daemon-2 |
[*]| adm-3 |
[*]| lp-4 |
[*]| sync-5 |
[*]+--------------+
[*]6 rows in set (0.00 sec)
[*]//拼接
[*]mysql> select concat(name , "-" , uid) as 用户信息 from tarena.user where uid <= 5;
多列拼接

[*]mysql> select concat(name , "-" , uid , "-" , gid) as 用户信息 from tarena.user where uid <= 5;
[*]+--------------+
[*]| 用户信息 |
[*]+--------------+
[*]| root-0-0 |
[*]| bin-1-1 |
[*]| daemon-2-2 |
[*]| adm-3-4 |
[*]| lp-4-7 |
[*]| sync-5-0 |
[*]+--------------+
去重显示 distinct 字段名列表

[*]//去重前输出
[*]mysql> select shell from tarena.user where shell in ("/bin/bash","/sbin/nologin") ;
[*]+---------------+
[*]| shell |
[*]+---------------+
[*]| /bin/bash |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /sbin/nologin |
[*]| /bin/bash |
[*]| /sbin/nologin |
[*]+---------------+
[*]22 rows in set (0.00 sec)
[*]//去重后查看
[*]mysql> select distinct shell from tarena.user where shell in ("/bin/bash","/sbin/nologin") ;
[*]+---------------+
[*]| shell |
[*]+---------------+
[*]| /bin/bash |
[*]| /sbin/nologin |
[*]+---------------+
[*]2 rows in set (0.01 sec)
[*]mysql>


4 案例4:安装图形软件

#可以在网络服务器上设置 数据库的增删改查
4.1 问题



[*]在IP地点192.168.88.50主机安装phpmyadmin软件
[*]客户端通过访问phpmyadmin软件管理数据库
4.2 方案

把用到的软件拷贝的假造机mysql50里
在mysql50主机,首先配置运行环境LNP,然后安装phpmyadmin软件,最后打开真机的欣赏器输入phpmyadmin的网址访问。
4.3 步调

实现此案例需要按照如下步调举行。

步调一:准备运行环境


命令操纵如下所示:

[*]gcc 源码包编译工具
[*]unzip 提供解压.zip 压缩包命令
[*]make 源码软件编译命令
[*]pcre-devel 支持正则表达式
[*]zlib-devel 提供数据压缩命令
[*]# yum -y install gcc unzip make pcre-devel zlib-devel //安装依赖
[*]# tar -xf nginx-1.22.1.tar.gz //解压源码
[*]# cd nginx-1.22.1 //进源码目录
[*]# ./configure //配置
[*]# make && make install //编译并安装
[*]# ls /usr/local/nginx/ //查看安装目录
[*]conf html logs sbin
[*]
[*]//修改主配置文件
[*]# vim /usr/local/nginx/conf/nginx.conf
[*]43 location / {
[*]44 root html;
[*]45 index index.php index.html index.htm; //添加首页名
[*]46 }
[*]
[*]65 location ~ \.php$ {
[*]66 root html;
[*]67 fastcgi_pass 127.0.0.1:9000; //访问.php的请求转给本机的9000端口
[*]68 fastcgi_index index.php;
[*]69 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
[*]70 include fastcgi.conf; //保存nginx变量文件
[*]71 }
[*]:wq
[*]# /usr/local/nginx/sbin/nginx //启动服务
[*]# netstat -utnlp | grep 80 //查看端口
[*]tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 42182/nginx: master
[*]#
软件功能说明

[*]php 解释php代码
[*]php-devel php扩展包
[*]php-mysqlnd 连接mysql命令包
[*]php-json 支持json代码
[*]php-fpm 提供fpm服务
安装软件

[*]# yum -y install php php-devel php-mysqlnd php-json php-fpm
修改主配置文件

[*]# vim +38 /etc/php-fpm.d/www.conf
[*]listen = 127.0.0.1:9000  #监听端口设置,默认是80
[*]:wq
[*]# systemctl start php-fpm //启动服务
查看端口  #mysqladmin   

[*]# netstat -utnlp | grep 9000
[*]tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 67251/php-fpm: mast
[*]#
编写php脚本

[*]# vim /usr/local/nginx/html/test.php
[*]<?php
[*]$name = "qq" ;
[*]echo $name ;
[*]echo "\n" ;
[*]?>
步调二:安装phpmyadmin软件

解压软件

[*]# which unzip || yum -y install unzip
[*]# unzip phpMyAdmin-5.2.1-all-languages.zip //解压
移动并改名

[*]# mv phpMyAdmin-5.2.1-all-languages /usr/local/nginx/html/phpmyadmin
创建主配置文件

[*]# cd /usr/local/nginx/html/phpmyadmin/
[*]# cp config.sample.inc.php config.inc.php
步调三:客户端访问

打开欣赏器输入此网址 效果如图-1所示   
http://192.168.88.50/phpmyadmin
https://i-blog.csdnimg.cn/direct/553586ce437c40f295aea1661fcfeadb.png

说明:输入数据库管理员root 和 密码 成功后如图-2所示
https://i-blog.csdnimg.cn/direct/51a8d573c1e54e1e8d2c2b5d06619e2f.png

在数据库服务器里创建普通用户

[*]创建库
[*]mysql> create database gamedb;
[*]Query OK, 1 row affected (0.01 sec)
[*]
[*]创建用户
[*]mysql> create user dc@"localhost" identified by "123456";
[*]Query OK, 0 rows affected (0.01 sec)
[*]
[*]授权权限
[*]mysql> grant all on gamedb.* to dc@"localhost" ;
[*]Query OK, 0 rows affected (0.00 sec)
[*]
[*]mysql>
客户端以上用户密码 登陆 mysqladmin 
可以看到
https://i-blog.csdnimg.cn/direct/88363fa0733443debab62aa1c6006d2f.png
     第一天涉及到的内容太多了,软件依赖下载,配置  mysqladmin,mysql 和 具体语法的介绍,还有密码用户的授权管理。
 后续内容我放到下几篇文章,不然眼睛看不过来了。O(∩_∩)O

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云计算第三阶段---DBA数据库管理