MYSQL高级-mysql的架构介绍
MYSQL高级
rpm安装MYSQL(Linux)
下载地址
https://dev.mysql.com/downloads/mysql/
下载GA版本(稳定发布版本)【Generally Available】
如果不知道下载32位还64位,可以在linux下使用命令查询getconf LONG_BIT
RPM介绍
RPM是Red-Hat Package Manager(红帽软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
检查当前系统是否安装过mysql
查询命令:rpm -qa|grep -i mysql
删除命令:rpm -e RPM软件包(该名字是上一个命令查出来的名字)
(print work directory) |
安装
-ivh
会安装显示进度条
rpm -ivh my |
安装Server端
rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
安装完后注意提示信息,添加最高权限root的密码!
安装client端
rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
与服务端区别,没有提示信息
查看MySQL安装时创建的mysql用户和mysql组
通过使用cat /etc/passwd | grep mysql
和cat /etc/group|grep mysql
查看mysql是否安装成功
或则可以执行 mysqladmin --version
命令,类似java -version如果打出信息,即为成功。
扩展:
查询linux下的用户
id z3 |
对于linux
系统而言,创建任何用户,都会在home
目录下新创用户名文件夹
cat命令
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
cat [-AbeEnstTuv] [--help] [--version] fileName |
参数说明:
-n 或 –number:由 1 开始对所有输出的行数编号。
-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 –show-ends : 在每行结束处显示 $。
-T 或 –show-tabs: 将 TAB 字符显示为 ^I。
-A, –show-all:等价于 -vET。
-e:等价于”-vE”选项;
-t:等价于”-vT”选项;
linux下的|
作用
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。
etc/passwd
在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性。各个字段的顺序和含义如下:
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
mysql服务的启+停
- mysql服务启动
service mysql start
- mysql服务启动
service mysql stop
拓展top
命令可以查看linux的运行时间等相关信息
mysql服务启动后,开始连接
- 首次连接成功
可以见到直接输入
mysql
命令,直接进入【MySQL默认没有密码,所以这里我们没有输入密码就直接连接上】 - 按照安装Server中的提示修改登录密码
依照mysql规则登录mysql -u 用户名 -p密码
自启动mysql服务
- 设置开机自启动mysql
chkconfig mysql on
使用chkconfig --list | grep mysql
命令,获取如图片的运行级别
扩展
使用cat /etc/inittab
获得
MySQL的安装位置
路径 解释 备注
/var/lib/mysql/ mysql数据库文件的存放路径 默认路径
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 启停相关脚本
修改字符集和数据存储路径
查看字符集
show variables like 'character%';
show variables like '%char%';
查看结果
database和server的value都为latinl修改
依照如下图片进行设置
注意在建库database
前修改好字符集编码问题,要不然会显示数据中文乱码问题
扩展
vim命令下显示序列:set nu
MySQL主要配置文件
错误日志log-error
默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等
查询日志log
默认关闭,记录查询的sql语句,如果开启会减掉mysql的整体性能,因为记录日志也是需要消耗系统资源
数据文件
- 两系统
windows
linux - frm文件
存放表结构 - myd文件
存放表数据 - myi文件
存放表索引
MySQL逻辑架构
- 连接层
最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 - 服务层
第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存。如果缓存控件足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。 - 引擎层
存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。后面介绍MyISAM和InnoDB - 存储层
数据存储层,主要是将数据存储在运行于是裸设备的文件系统之上,并完成与存储引擎的交互。
存储引擎简介
- 如何用命令查看
#看你的mysql现在已提供什么存储引擎mysql>show engines;
#看你的mysql当前默认的存储引擎mysql>show variables like '%storage_engine%'
- MyISAM和InnoDB