Mysql的数据库的原理及安装和应用
Mysql的数据库的原理及安装和应用
第一部分:mysql的原理 mysql执行流程:
mysql是一个单进程的服务,对于每一个请求都是用线程来响应的,这就需要一个连接器来处理新用户的请求,响应,销毁。
1、客户端请求,服务器端(连接器)开辟线程响应用户 2、用户发起SQL语句查询数据库
3、查询缓存:记录用户的SQL查询语句,如果再次查询同样内容,就返回缓存 4、如果缓存没有进入分析器:(分析器也可能借签缓存) 语法分析器:用户命令语法是否正确
词法分析器:将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的表,内容,用户的权限等
5、优化:执行路径的选择,生成执行树
每个SQL语句都有很多执行路径,优化的目的就是在这些执行路径里选择一个最优的执行路径
6、存储引擎:用于管理存储在文件系统,甚至是裸设备上的数据管理程序,它本身给上层应用提供不同的管理,有的支持事务,有的不支持事务。
数据库对象:
逻辑对象:表,二维关系、索引、视图、触发器、存储过程、存储函数、事件調读器、游标、用户。
物理对象:数据管理组件(元数据)、存储引擎、 存储为物理文件。 数据库管理系统的基本功能:
管理存储(maintaining storage)(存储引擎进行管理) 安全管理(maintaining security) 元数据管理(managing metadata) 事务管理(managing transaction) ACID(原子性、一致性、隔离性、持久性) 可以被看作一个整体的多个SQL语句 连接管理(supporting connectivity) 性能优化(optimizing performance)
备份和还原机制(providing back-up and recovery mechanisms)
响应数据查询/修改请求(processing requests for data retrieval and modification) 存储引擎:将数据存储下来的中间层,
MyISAM、InnoDB、NDB、Arcglve、Federated、Memory、Merge:合并,多表合并成一个
rawdevice:裸设备,没有格式化 键
主键:(primary key) 非空(Not NULL) 不能有相同值
一个表只能有一个主键 外键:(foreign key)
表与表之间建立约束,不存在的不可建立约束 外键约束又叫引用型约束 唯一性约束:(unique key) 可以为空(NULL) 若不为空,则值不能相同 一个表可以有多个 日志文件:
Redo(重做日志、Undo、Data、Index、Binary、Error、Query、Slow(慢查日志,重要)
数据存储格式: Binary、ASCII
数据类型(data type): 整数型:
字符型:
日期时间型:
字符型的特殊类型(MySQL内置的类型):
enum 枚举型,事先定义,最多定义65535个,但最多可以取一个 set 集合型,也需事先定义,最多定义64个,可取多个
第二部分:mysql的安装 安装方式:
1、 rpm包的直接安装 2、 源代码编译安装
3、 绿色软件(解压直接使用)
我在这里给大家带来的是第二、源代码编译安装mysql。根据下面的步骤一步一步的操作。
1、准备数据存放的文件系统
分区8e。
使用命令echo创建分区、记住一定要是逻辑
[root@localhost ~]# partprobe /dev/sda 识别分区 [root@localhost ~]# pvcreate /dev/sda6 创建物理卷 [root@localhost ~]# vgcreate myvg /dev/sda5 创建卷组 [root@localhost ~]# lvcreate -L 2G -n mylv myvg 在创建逻辑卷 [root@localhost ~]# mke2fs -j /dev/myvg/mylv 格式化 [root@localhost ~]# mkdir /mydata 创建目录
[root@localhost ~]# vim /etc/fstab 编辑开机自动挂载文件 在文件中写下光标所在的那行:
[root@localhost ~]# mount /dev/myvg/mylv /mydata 挂载至 [root@localhost ~]# mkdir /mydata/data 在创建mydata子目录
2、新建用户以安全方式运行进程: # groupadd -r mysql 创建用户组
# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql 创建用户 # chown -R mysql:mysql /mydata/data 把/mydata/data 目录属主属组改为myqsl
3、安装并初始化mysql-5.5.19
首先下载平台对应的mysql版本至本地,我这里是32位平台,因此,我在这选择的为mysql-5.5.19-linux2.6-i686.tar.gz。具体下载就不给出步骤。
# tar xvf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local 解压至/usr/local 目录 # cd /usr/local/ 切换至目录
# ln -sv mysql-5.5.19-linux2.6-i686 mysql 创建软链接 # cd mysql 切换至目录
# chown -R mysql:mysql ./ 改属主属组 .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data 初始化mysql
# chown -R root ./ . 把属主改回root
[root@localhost mysql]# ./scripts/mysql_install_db –help 查看帮助信息
4、为mysql提供主配置文件:
[root@localhost mysql]# cd support-files/ 切换至目录
[root@localhost support-files]# cp my-large.cnf /etc/my.cnf 复制并改名配置文件至/etc 下;
[root@localhost support-files]# vim /etc/my.cnf 打开配置文件
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,另外还需要添加如下行指定mysql数据文件的存放位置;使用如下行:
(无法识别,无法识别
usb设备怎么办?http://www.woaidiannao.com/html/xwzx/6604.html)
5、为mysql提供sysv服务脚本:
# cd /usr/local/mysql 切换至目录
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 复制服务脚本并改名为mysqld至/etc/rc.d/init.d/mysqld
添加至服务列表:
# chkconfig --add mysqld 加入服务 # chkconfig mysqld on 开启mysql
而后就可以启动服务测试使用了。 # service mysqld start
为了使用mysql的安装更全面,我下面的步骤将其开发组件导出给系统使用; 如下步骤:
6、输出mysql的man手册至man命令的查找路径:
编辑 vim /etc/man.config,添加如下行即可:
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育Mysql的数据库的原理及安装和应用 - 图文 全文阅读和word下载服务。
相关推荐: