当前位置: 首页 > news >正文

MySQL 简介

什么是MySQL?(熟悉)

MySQL是一个开源的、使用标准SQL语言的、可运行于多个系统的、支持多语言的、支持大型数据库的关系型数据库管理系统。由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下产品。我们通常使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

数据库必知的术语(掌握)

  • 数据库:数据库是一些表或者其它对象的集合。
  • 数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • :又称为字段。一列数据包含了相同类型的数据,例如邮政编码的数据。
  • :又称为记录。一行数据是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储多份数据,冗余虽然浪费了空间,降低了性能,但提高了数据的安全性。
  • 主键:一个数据表中只能包含一个主键。表中每一行数据(一条记录)的主键是唯一的,你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。其中一个表A的字段取之于表B的主键,那么B的主键称为A的外键。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

数据表可以简单看做一个Excel表:

  • 表头(header): 每一列的名称;
  • (col): 具有相同数据类型的数据的集合;
  • (row): 每一行用来描述某条记录的具体信息;
  • (value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • (key): 键的值在当前列中具有唯一性。

数据库配置链接中的url的参数含义(熟悉)

url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
url统一资源定位符
jdbc:mysql是协议名称 是指JDBC连接方式
localhost:3306是主机:端口 还可以写作127.0.0.1:3306
test是数据库名
useSSL=trueMySQL在高版本需要指明是否进行SSL连接 在mysql连接字符串url中加入ssl=true或者false即可 SSL
useUnicode=true是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true
characterEncoding当useUnicode设置为true,给定编码,常用utf8,默认是:autodetect
serverTimezone设置时区 例如 serverTimezone=UTC(统一标准世界时间)或serverTimezone=Asia/Shanghai(中国时区)
zeroDateTimeBehavior所有零组件的日期时间处理
allowPublicKeyRetrieval允许客户端从服务器获取公钥

zeroDateTimeBehavior处理策略,有3种

  • exception(不指定,则默认)---->默认抛出异常,
  • convertToNull------->转化为null
  • round------->替换成最近的日期即XXXX-01-01
    allowPublicKeyRetrieval

设置AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥。

AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启。

问题一

当使用数据库查询第一条数据的时候,发现报了这个Public Key Retrieval is not allowed(不允许检索公钥)。出现这个问题原因是:mysql8以上版本默认使用 sha256_password 认证,密码在传输过程中必须加密保护,如果无法使用 TLS,就需要使用 RSA 公钥加密。

解决办法:设置AllowPublicKeyRetrieval=True即可解决此问题。

问题二

Access denied for user ‘root’@‘172.17.0.1’ (using password: YES)

此异常和问题一一样,从MySQL8.0 开始,默认的验证方式是caching_sha2_password。

http://www.lryc.cn/news/287167.html

相关文章:

  • 动态规划最后一天(回文串)
  • c语言之scanf函数
  • ORM-02-JPA Java Persistence API 注解入门介绍
  • 【MQ01】什么是消息队列?用哪个消息队列?
  • 2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型
  • 【Flink-CDC】Flink CDC 介绍和原理概述
  • 长城资产信息技术岗24届校招面试面经
  • 【计算机网络】TCP握手与挥手:三步奏和四步曲
  • 设计模式学习总结
  • 「HDLBits题解」Cellular automata
  • 什么是API ?
  • Pytest中conftest.py的用法
  • java.lang.IllegalArgumentException: When allowCredentials is true
  • vue折叠展开transition动画使用keyframes实现
  • 书生·浦语大模型实战营-学习笔记5
  • 10. Profile
  • YOLO 自己训练一个模型
  • 3.Eureka注册中心
  • 基于springboot+vue的墙绘产品展示交易平台系统(前后端分离)
  • 网络原理-初识(1)
  • 【GitHub项目推荐--人脸识别】【转载】
  • NLP自然语言处理介绍
  • 在线WebOffce在HTML/VUE/Electron纯前端网页编辑Office之打开Word后自动处于修订模式
  • thinkphp+vue+mysql旅游推荐攻略分享网站p0667
  • 华为系统底层是用Java写的吗?和安卓的区别?
  • sql server 修改表前 先判断是否有这个列
  • 解决网站高并发问题的策略?
  • 浙政钉实现埋点(浙政钉-H5小程序应用采集开发手册)
  • 【笔记】Helm-4 最佳实践-3 模板
  • 网络爬虫基本原理的介绍