# 第二章--MYSQL体系结构和管理

一、体系结构

MySQL C/S模型

  • Server : mysqld
  • Client :
    • socket:仅本地连接使用
    • tcp/ip:应用连接使用(远程和本地)
    #TCP/IP方式(远程、本地)
    mysql -uroot -p123456 -h 10.0.0.51 -P3306
    
    #socket方式(仅本地)
    mysql -uroot -p123456 -S  /tmp/mysql.sock

实例介绍

实例=mysqld  --- > master thread ---> 干活的线程 + 预分配的内存结构
公司=boss         经理                  员工         办公室

实例=mysqld+master thread + N thread + 内存区域

mysqld程序运行原理

mysqld程序结构

(

SQL语句的执行个过程

  • 连接层

    (1)提供连接协议:TCP/IP 、SOCKET
    (2)提供验证:user、password,IP,SOCKET
    (3)提供专用连接线程:接收用户SQL,返回结果
    通过以下语句可以查看到连接线程基本情况

    mysql> show processlist;
  • SQL层

    (1)接收上层传送的SQL语句
    (2)语法验证模块:验证语句语法,是否满足SQL_MODE
    (3)语义检查:判断SQL语句的类型
    (4)权限检查:用户对库表有没有权限
    (5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.
    (6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

    (7)执行器:根据最优执行计划,执行SQL语句,产生执行结果

  • 存储引擎层(简单介绍)

    负责根据SQL层执行的结果,从磁盘上拿数据。
    将16进制的磁盘数据,交由SQL结构化化成表,
    连接层的专用线程返回给用户。

MySQL的逻辑结构基本构成

  • 库(DATABASE,SCHEMA)
  • 表(TABLE.SEGMENT)
  • 用户(PRIVILEGES)
  • OTHER

MySQL基础物理结构

库:物理存储,相当于linux中的目录

表:元数据(表名,表属性,表列)

MyISAM(一种引擎)的表:
.MYI    索性相关信息
.MYD    存储数据行
.frm    列的信息

-rw-r----- 1 mysql mysql   10816 Apr 18 11:37 user.frm
-rw-r----- 1 mysql mysql     396 Apr 18 12:20  user.MYD
-rw-r----- 1 mysql mysql    4096 Apr 18 14:48 user.MYI

InnoDB(默认的存储引擎)的表:
.frm:   存储列相关信息
.ibd:   数据行+索引(IOT)
-rw-r----- 1 mysql mysql    8636 Apr 18 11:37 time_zone.frm
-rw-r----- 1 mysql mysql   98304 Apr 18 11:37 time_zone.ibd

INNODB表底层存储结构引入

  • 段:一个非分区表就是一个段(segment)
  • 区:大小为1M,默认是连续的64个page(extent)
  • 页:MySQL最小的IO单元,默认为16kb(page)

MySQL基础管理

用户

用户的作用:登录mysql,管理MySQL的逻辑对象

用户的定义方式

用户的定义:用户名,白名单(主机列表)
[email protected]'localhost'
[email protected]'10.0.0.1'
[email protected]'10.0.0.%'  ##
[email protected]'10.0.0.5%'
[email protected]'10.0.0.0/255.255.254.0'
[email protected]'oldguo.com'
[email protected]'db01'
[email protected]'%'

用户的管理操作

#创建用户
create user [email protected]'10.0.0.%';

#删除用户
drop user [email protected]'10.0.0.%';

#查看用户
select user,host from mysql.user;

#设置用户密码
alter user [email protected]'10.0.0.%' identified by '123456';

#创建用户同时创建密码
create user [email protected]'10.0.0.%' identified by '123456';

8.0版本以前,grant 可以创建用户并授权。8.0版本以后必须先创建用户在授权

权限

权限的作用:开启用户管理对象的能力

权限的定义

grant all on wordpress.* to [email protected]'10.0.0.%' identified  by '123';

授权范围

*.*             全库级别,一般为管理员
wordpress.*      单库级别,应用或开发
wordpress.t1     单表级别,很少使用

生产环境用中授权

应用用户一般给

select,insert,update,delete

中小公司,开发人员leader

SELECT,INSERT, UPDATE, DELETE,CREATE,ALTER,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,
ALTER ROUTINE,EVENT, TRIGGER

mysql忘记本地管理员用户密码

```

关闭数据库

/etc/init.d/mysqld stop

将数据库启动到无验证模式

mysqld_safe --skip-grant-tables --skip-networking &

参数说明

--skip-grant-tables //跳过授权表
--skip-networking //禁用TCP/IP连接方式

修改管理员密码

flush privileges;
alter user [email protected]‘localhost‘ identified by ‘123456‘;
quit

重启数据库为正常模式

/etc/init.d/mysqld restart

测试是否修改成功

mysql -uroot -p123456

MySQL连接方式

本地 -- 使用socket

本地登录的用户,需要提前授权localhost相关用户

mysql -uroot -p123 -S /tmp/mysql.sock

远程 -- TPC/IP

mysql -uoldguo -p  -h10.0.0.51 -P3306 

mysql 自带命令

命令:mysql
参数
    -u  登录用户
    -p  登录密码
    -h  连接的IP
    -P  端口号
    -S  socket文件
    -e  非交互式登录
    -V  查看版本信息
    <   导入数据库

原文地址:https://www.cnblogs.com/lpcsf/p/12023599.html

时间: 2024-07-31 22:36:00

# 第二章--MYSQL体系结构和管理的相关文章

第二章&#183; MySQL体系结构管理

一.客户端与服务器模型 ? 1.mysql是一个典型的C/S服务结构 1.1 mysql自带的客户端程序(/application/mysql/bin) mysql mysqladmin mysqldump 1.2 mysqld一个二进制程序,后台的守护进程 单进程 多线程 2.应用程连接MySQL方式 TCP/IP的连接方式 ? 套接字连接方式 思考:mysql -uroot -poldboy123是使用了哪个连接方式??? 二.MySQL服务器构成 1 什么是实例 1.MySQL的后台进程+

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

第03章 mysql 体系结构

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] MySQL体系结构 [4] MySQL体系结构详解 [5] MySQL体系结构 [6] mysql体系结构 [7] MySQL InnoDB体系结构 [8] MySQL体系结构以及各种文件类型学习汇总 [9] 基于mysql体系结构的深入解析

Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记

第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ? Thread是所在主机运行的应用程序任务(task). 仅仅有一个线程的样例: public class Factorial { public static void main(String[] args) { int n = 5; System.o

网络操作系统 第二章 用户和组管理

本章小结 本章介绍了用户和用户的基本概念.讲解了在Windows Server2008中用户和组的创建.删除及其属性的修改.在Linux部分,首先通过图形配置工具介绍了Linux.中用户及组的相关属性,然后讲解了与用户和组相关的配置文件,最后介绍了如何使用命令完成对用户和组的管理. 一.Windows Server 2008中的用户有哪些类型?系统默认的用户有哪些? 用户.InetOrgPerson和联系人. 默认用户账户: Administrator Guest: 二.如何在Windows S

第二章 Mysql 数据类型简介

第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候,按四舍五入计算 第二节:日期与时间类型 第三节:字符串类型 第四节:二进制类型

【Linux系列】【基础版】第二章 文件、目录管理

2. 文件.目录管理     2.1 有哪些文件目录         2.1.1 /bin          2.1.2 /boot         2.1.3 /dev         2.1.4 /etc         2.1.5 /home         2.1.6 /lib  /lib64         2.1.7 /meida         2.1.8 /mnt         2.1.9 /opt         2.1.10 /proc         2.1.11 /ru

如鹏网.Net三层架构第二章登录和会员管理

讲解餐饮项目中登录功能和会员管理功能 -------------------------------------------------------------------------------------------- 三层项目: 关系型数据   C#类数据 表名          类名 列名 字段封装成属性 三层  各个功能分开 登录窗口点登录->调用BLL方法->调用DAL方法->数据库 数据库->DAL->BLL->UI -------------------

第二章:用户登录管理模块

本章简介 1.项目分层 2.创建MyHibernateSessionFactory 3.设计用户接口和实现类 4.设计所有Action父类 5.设计用户Action类 6.页面调用 7.完成显示登录成功用户名和注销功能 8.显示报错信息 1.项目分层 实体层(模型层):entity包 学生类.用户类 数据库层(模型层):db包 接口层(模型层):service包 接口实现层(模型层):service.impl包 动作层(控制层):action包 Jsp页面(视图层):整个项目所有的JSP页面 2