MySQL基础

关系型数据库介绍

数据结构模型

数据结构模型主要有:

  • 层次模型
  • 网状结构
  • 关系模型

关系模型:

二维关系:row,column

数据库管理系统:DBMS

关系:Relational,RDBMS

RDBMS专业名词

常见的关系型数据库管理系统:

  • MySQL:MySQL,MariaDB,Percona-Server

    • MySQL 5.7版本及以前版本开源,后被Oracle收购,版本跳跃至8.0,开始收费
    • mariaDB mysql原班人马开发,开源免费,初始版本10.0
  • PostgreSQL:简称为pgsql
  • Oracle
  • MSSQL 微软SQLServer数据库服务器

SQL:Structure Query Language,结构化查询语言

约束:constraint,向数据表提供的数据要遵守的限制

  • 主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。且必须提供数据,不能为空(NOT NULL)。

    • 一个表只能存在一个
  • 惟一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。允许为空(NULL)
    • 一个表可以存在多个
  • 外键约束:一个表中的某字段可填入数据取决于另一个表的主键已有的数据
  • 检查性约束

索引:将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储

关系型数据库的常见组件

关系型数据库的常见组件有:

  • 数据库:database
  • 表:table,由行(row)和列(column)组成
  • 索引:index
  • 视图:view
  • 用户:user
  • 权限:privilege
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler

SQL语句

SQL语句有三种类型:

  • DDL:Data Defination Language,数据定义语言
  • DML:Data Manipulation Language,数据操纵语言
  • DCL:Data Control Language,数据控制语言
SQL语句类型 对应操作
DDL CREATE:创建 DROP:删除 ALTER:修改
DML INSERT:向表中插入数据 DELETE:删除表中数据 UPDATE:更新表中数据 SELECT:查询表中数据
DCL GRANT:授权 REVOKE:移除授权

MySQL安装与配置

MySQL安装

MySQL安装方式有三种:

  • 源代码:编译安装
  • 二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
  • 程序包管理器管理的程序包:
    • rpm:有两种

      • OS Vendor:操作系统发行商提供的
      • 项目官方提供的
    • deb

示例:

环境:centOS8

这里使用yum进行安装

#首先下载mysql官方yum源
[root@liu ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#查看是否有包
[root@liu ~]# ls
mysql57-community-release-el7-11.noarch.rpm
#升级mysql包
[root@liu ~]# rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
warning: mysql57-community-release-el7-11.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mysql57-community-release-el7-11 ################################# [100%]
#查看yum仓库路径下是否有mysql的仓库
[root@liu ~]# ls /etc/yum.repos.d/
CentOS-Base.repo mysql-community.repo mysql-community-source.repo
#安装mysql5.7版本,cent0S8需要检测包的来源合法性,所以要加上nogpgcheck参数跳过来源合法性检测
[root@liu ~]# dnf -y install mysql-community-server mysql-community-client mysql-community-common mysql-community-devel --nogpgcheck
#安装完成之后可以查看当前mysql版本
[root@liu ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.38, for Linux (x86_64) using EditLine wrapper
#启动mysql服务
[root@liu ~]# systemctl start mysqld
#启动mysql并设置为开机自启,这条命令可以和上面启动命令选择性使用
[root@liu ~]# systemctl enable --now mysqld
#查看mysql状态
[root@liu ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2022-07-23 16:36:24 CST; 59s ago
***省略部分输出***
#默认mysql是有密码的,所以这里需要在日志里查找密码
[root@liu ~]# grep "password" /var/log/mysqld.log
2022-07-23T08:36:22.943668Z 1 [Note] A temporary password is generated for root@localhost: DaHAVz3xov_M
#获取到密码之后即可登入mysql
[root@liu ~]# mysql -uroot -pDaHAVz3xov_M
mysql: [Warning] 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 2
Server version: 5.7.38 Copyright (c) 2000, 2022, 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密码
#首先设置密码安全性,0表示最低
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
#然后设置密码长度
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
#修改密码,密码长度太短安全性太低无法修改,所以建议使用英文加数字加字符组合
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Archer123!';
Query OK, 0 rows affected (0.00 sec)
#mysql安装完毕之后建议删除mysql仓库,以防止自动更新至高版本
[root@liu ~]# rpm -e mysql57-community-release
[root@liu ~]# ls /etc/yum.repos.d/
CentOS-Base.repo

报错解决

报错示例:

[root@liu ~]# dnf -y install mysql-community-server mysql-community-client mysql-community-common mysql-community-devel  --nogpgcheck
Last metadata expiration check: 0:02:24 ago on Sat 23 Jul 2022 04:00:51 PM CST.
All matches were filtered out by modular filtering for argument: mysql-community-server
All matches were filtered out by modular filtering for argument: mysql-community-client
All matches were filtered out by modular filtering for argument: mysql-community-common
All matches were filtered out by modular filtering for argument: mysql-community-devel
Error: Unable to find a match: mysql-community-server mysql-community-client mysql-community-common mysql-community-devel

解决方法:

#禁用mysql模块,再进行安装即可
[root@liu ~]# yum module disable mysql
Last metadata expiration check: 0:04:17 ago on Sat 23 Jul 2022 04:00:51 PM CST.
Dependencies resolved.
=======================================================================================================
Package Architecture Version Repository Size
=======================================================================================================
Disabling modules:
mysql Transaction Summary
======================================================================================================= Is this ok [y/N]: y
Complete!

MariaDB安装

示例:

环境:redhat8

这里同样使用yum安装

[root@rh2 ~]# dnf -y install mariadb*
***省略部分输出***
Complete!
#启动并设置为开机自启
[root@rh2 ~]# systemctl enable --now mariadb
#进入mariadb,默认没有密码,因为mariadb为mysql原班人马打造,所以命令几乎一样,输入mysql进入
[root@rh2 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.28-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
#设置密码
MariaDB [(none)]> set password = password('Archer123!');
Query OK, 0 rows affected (0.001 sec)

MySQL基础、MySQL安装和MariaDB安装的更多相关文章

  1. mysql基础教程(一)-----概述、安装、查询

    概述 好处 •实现数据持久化 •使用完整的管理系统统一管理,易于查询 概念 DB 数据库(database):存储数据的“仓库”.它保存了一系列有组织的数据. DBMS 数据库管理系统(Databas ...

  2. MySQL基础 - mysql命令行客户端

    在Linux系统当中,mysql作为一个客户端命令程序,在很大程度上连接数据库都是使用mysql,因此很有必要熟悉mysql命令行的使用. 这里假设数据库用户为icebug,密码为icebug_pas ...

  3. MySQL基础、索引、查询优化等考察点

    MySQL基础 MySQL数据类型 整数类型 TINYINT. SMALLINT. MEDIUMINT. INT. BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,例如:INT(1 ...

  4. mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解

    一.mariadb安装 1.配置mariadb源: [root@ren7 ~]# vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB ...

  5. mysql、mariadb安装和多实例配置

    本文目录:1. mysql单实例安装 1.1 rpm安装mysql 1.2 通用二进制包安装mysql 1.2.1 初始化数据库 1.2.2 安装后的规范化操作 1.3 编译安装 1.3.1 编译安装 ...

  6. MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64、MySQL5.7)

    MySQL基础环境_安装配置教程(Windows7 64或Centos7.2 64.MySQL5.7) 安装包版本 1)     VMawre-workstation版本包 地址: https://m ...

  7. MySQL基础:安装

    概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户 ...

  8. MySQL基础篇——安装、管理

    MySQL 安装 所有平台的 MySQL 下载地址为https://dev.mysql.com/downloads/mysql/ .挑选你需要的 MySQL Community Server 版本及对 ...

  9. MySQL 基础、安装、配置

    1. MySQL 基础 1.1 什么是数据库? 1.2 数据库的类型 1.3 关系型数据库的优点 1.4 MySQL 简介 1.5 MySQL 数据类型 1.6 Mysql 存储引擎 1.7 MySQ ...

随机推荐

  1. 迭代器和增强for循环

    iterator 迭代:即Collection集合元素的通过获取方法,在获取元素之前先要判断集合中有没有元素,如果有就把这个元素取出来,然后在判断,如果还有就再去除卡u,一直把集合中的所有元素全部拿出 ...

  2. Linux—系统基础一

    Linux系统基础(一) Linux的基本原则: 由目的单一的小程序组成,组合小程序完成复杂任务: 一切皆文件: 配置文件保存为纯文本格式. 1.shell 1.1 shell简介 Shell俗称壳( ...

  3. Serverless之Knative部署应用实例;

    1.什么是Knative? Knative是Google2018的Google Cloud Next大会上发布的一款基于kubernetes的Serverless框架. knative的目的是在kub ...

  4. google nexus5x 刷机抓包逆向环境配置(三)

    本文仅供学习交流使用,如侵立删! google nexus5x 刷机抓包逆向环境配置(三) 安装抓包证书(Fiddler.Charles) 操作环境 nexus5x kaliLinux win10 准 ...

  5. 优雅退出在Golang中的实现

    背景 为什么需要优雅关停 在Linux下运行我们的go程序,通常有这样2种方式: 前台启动.打开终端,在终端中直接启动某个进程,此时终端被阻塞,按CTRL+C退出程序,可以输入其他命令,关闭终端后程序 ...

  6. 使用docker简单编译k20pro内核

    简介 本文将介绍一下如何使用docker编译红米k20pro的内核.作者当时尝试构建内核的原因是为了将3年前(好像是吧)购买的k20pro至尊版(已退役,12GB内存,512GB硬盘)制作成一个小的服 ...

  7. Hadoop集群搭建的详细过程

    Hadoop集群搭建 一.准备 三台虚拟机:master01,node1,node2 时间同步 1.date命令查看三台虚拟机时间是否一致 2.不一致时间同步:ntpdate ntp.aliyun.c ...

  8. Excelize 2.3.2 发布,Go 语言 Excel 文档基础库,2021 年首个更新

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准.可以使用它来读取.写入由 Microsoft Exc ...

  9. ARC120F Wine Thief (组合数学)

    题面 有一个长为 N N N 的序列,相邻的两个数中只能选一个,总共选 k k k 个数,一种方案的价值为选的 k k k 个数的和,问所有合法方案的价值总和,答案对 998244353 取模. 1 ...

  10. 【java】学习路径20-Date、Calender日期与时间

    简单的说,Date和Calender基本上是差不多的. 在最开始的时候只有Date,没有Calender. 在jdk不断更新的时候,发现了Date有一点缺陷,于是推出了Calender. // Dat ...