认识数据库

1.8 MySQL简介

MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。

目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

1.8.1 MySQL的特性

  1. 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

  2. 支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、NetBSD、OpenBSD、 OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。

  3. 为多种编程语言提供了API。这些编程语言包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、 Python、Ruby和Tcl等。

  4. 支持多线程充分利用CPU资源支持多用户

  5. 优化的SQL查询算法有效地提高查询速度。

  6. 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的 软件中。

  7. 提供多字符集支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数 据列名。

  8. 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

  9. 提供用于管理、检查、优化数据库操作的管理工具

  10. 可以处理拥有上千万条记录的大型数据库

1.9 MySQL获取

版本介绍:

Alpha版:开发版,公司内部使用

Beta版:完成开发后,用户体验版

RC版:生产环境发布之前的一个小版本或称候选版

GA版:正式发布版本

MySQL官网地址:MySQL

从官方网站下载安装包

从官方网站下载源代码包

从官方网站下载二进制包

从发行版本光盘中获取安装包

MySQL 常见版本:

MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。

MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。

MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。

MySQL Cluster CGE 高级集群版,需付费

1.10 MySQL在企业中应用

数据库排名:DB-Engines Ranking - popularity ranking of database management systems

适用场景:

互联网公司web网站系统、数据仓库系统、日志记录系统、嵌入式系统

MySQL典型用户:

google、雅虎、腾讯、北电、思科、YouTube、SecondLife 百度、优酷网、新浪、中国电子科学研究院

数商3.0、一大把、哈票网、短信网关、IP通讯

MySQL在云中获得普遍采用:

1.11 MySQL体系结构

Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的

Connectors指的是不同语言中与SQL的交互

Management Serveices & Utilities: 系统管理和控制工具

Connection Pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求

SQL Interface:SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调 用SQL Interface

Parser: 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。

Optimizer:查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化。

Cache和Buffer: 查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数 据.

Engine:存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。

-- 查看最大连接数
show variables like '%max_connections%';

# 查询缓存配置情况
show variables like '%query_cache%';

一条SQL语句执行流程:

连接层
 (1)提供连接协议:TCP/IP 、SOCKET
 (2)提供验证:用户、密码,IP,SOCKET
 (3)提供专用连接线程:接收用户SQL,返回结果
 通过以下语句可以查看到连接线程基本情况
 mysql> show processlist;
 
SQL层
  (1)接收上层传送的SQL语句
  (2)语法验证模块:验证语句语法,是否满足SQL_MODE
  (3)语义检查:判断SQL语句的类型
   DDL :数据定义语言
   DCL :数据控制语言
   DML :数据操作语言
   DQL: 数据查询语言
   ...
  (4)权限检查:用户对库表有没有权限
  (5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.
  (6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划
     代价模型:资源(CPU IO MEM)的耗损评估性能好坏
  (7)执行器:根据最优执行计划,执行SQL语句,产生执行结果
 执行结果:在磁盘的xxxx位置上
  (8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能
  (9)提供日志记录(日志管理章节):binlog,默认是没开启的。
​
存储引擎层(类似于Linux中的文件系统)
    负责根据SQL层执行的结果,从磁盘上拿数据。
    将16进制的磁盘数据,交由SQL结构化化成表,
    连接层的专用线程返回给用户。

第二章 MySQL 安装部署

MySQL数据库存在多种版本,不同的版本在不同的平台上(OS,也就是操作系统上)安装方式可能有所不同,因此安装时一定要参考官方文档进行安装。MySQL :: MySQL Documentation

选择需要的MySQL官方提供的不同版本,点击后在选择MySQL对应版本的,就可以找到安装教程,如意MySQL5.7为例:MySQL :: MySQL 5.7 Reference Manual :: 2 Installing and Upgrading MySQL

可以选择平台对应的安装方式。

2.1 window安装MySQL

window一般我们在开发时需要安装MySQL进行软件的开发,官方提供了两种安装方式:.msi和zip方式。

2.1.1 安装包方式

安装方式如下:

1、下载安装包

官网下载对应的安装包,根据需要下载对应的版本即可: 8.0:https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-8.0.18.0.msi 5.7:https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-5.7.28.0.msi

当然也可以选择自己需要的版本:MySQL :: Download MySQL Installer (Archived Versions)

2、安装过程

安装包的方式比较简单,安装提示对应的完成操作即可(不同的版本可能有所区别,但是都大同小异),这种方式适合于新手使用,一般开发者都建议使用压缩包的方式完成。

2.1.2 压缩包方式

压缩包的方式在5.7之前和之后不太一样

zip版(5.5、5.6):

1、解压到非中文、非特殊字符路径下

2、将bin目录配置到环境变量中

3、在主目录下复制一个xx.ini,修改为my.ini,修改其中的basedir和datadir

basedir=mysql主目录 ​ datadir=mysql主目录/data

4、以管理员身份打开cmd,将路径切换到bin中,执行命令 mysqld install 新服务名 # 安装mysql服务器到系统

5、启动服务: 可以手动启动服务 也可以使用net start mysql 命令启动

6、测试 cmd中执行命令 mysql -uroot -p

zip版(5.7及8.0):

  1. 下载位置:mysql下载位置

  2. 解压缩后位置:D:\mysql-8.0.15-winx64

  3. 在主目录下复制一个xx.ini,修改为my.ini,修改其中的basedir和datadir

    basedir=mysql主目录 ​ datadir=mysql主目录/data

  4. 初始化命令(记录控制台给出的随机密码,一定记住):

    mysqld --initialize --console

  5. 然后先给mysql服务创建名称(方便到时候建立多个mysql服务时不冲突)

    mysqld --install mysql8

  6. 启动服务:

    net start mysql8

  7. 登陆旧密码登陆(第3步中的密码):

    mysql -u root -p

  8. 修改密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
                        
    # 之后键入修改密码的命令:
    ALTER USER root@localhost IDENTIFIED  BY 'root'

  9. 使用新密码登陆:

    mysql -u root -p 新密码

卸载MySQL:

停止服务:net stop mysql

删除服务:mysqld --remove

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值