`
shinfocom
  • 浏览: 1192038 次
文章分类
社区版块
存档分类
最新评论

Mysql原理,安装和基本使用

 
阅读更多

Mysql的原理,安装和基本使用


mysql执行流程:

mysql是一个单进程的服务,对于每一个请求都是用线程来响应的,这就需要一个连接器来处理新用户的请求,响应,销毁


1.客户端请求,服务器端(连接器)开辟线程响应用户

2.用户发起SQL语句查询数据库

3.查询缓存:记录用户的SQL查询语句,如果再次查询同样内容,就返回缓存

4.如果缓存没有进入分析器:(分析器也可能借签缓存)

语法分析器:用户命令语法是否正确

词法分析器:将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的表,内容,用户的权限等

5.优化:执行路径的选择,生成执行树

每个SQL语句都有很多执行路径,优化的目的就是在这些执行路径里选择一个最优的执行路径

6.存储引擎:用于管理存储在文件系统,甚至是裸设备上的数据管理程序,它本身给上层应用提供不同的管理,有的支持事务,有的不支持事务。



#查询缓存可以大大加速这个过程,不过缓存本身可能带来劣势,假如一个用户要查询一个数据,正好缓存里有,而在之前,这条数据刚刚被修改过那么返回的缓存结果就是过时的。


MYSQL的结构:


客户端:mysql

连接器: NativeC API 本地C语言接口

JDBCJAVA的数据库连接器

ODBC开放式数据库互联,非常底层 ORACLESOLServer都支持

连接池(conetcionpool):它的后方是MYSQL的真正功能

SQL接口:用户通过sql客户端发过来的命令,由sql接口接收

DML数据操作语言:查询,修改,升级数据等

DDL数据定义语言:创建一个新的数据库,新的索引,删除一个用户等

存储过程视图触发器


Parser:分析器

查询 事务 对象权限

optimizer:访问路径

生成执行树


caches&buffers:缓存和缓存

优化里最重要的是缓存的优化


pluggablestroage engines存储引擎(插件式):将逻辑结构转换为物理结构的程序

ManagementServices & Utilites工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和mysql-server打交道,它们对应的都是命令。

数据库对象:(逻辑)

表,二维关系

索引

视图

触发器

存储过程

存储函数

事件調读器

游标

用户


物理

文件


将数据库对象和物理对象对应起来就是存储引擎

Mysql

*插件式的存储引擎


mysqlmysql的连接方式:tcp,socket,pipe,memory


mysql的交互方式:interact batch


SQL

结构化查询语言

bash

select,update,create,drop


Mysql安装

版本选择:

GA

RC

beta

alpha


在以后的使用过程中,RPM包很方便,但是会带来各种问题,所以尽量使用编译安装甚至是LFS

Mysql-client

Mysql-devel:编译安装软件包,需要用到Mysql的时候才安装这个软件包

Mysql-embedded: mysq嵌入式

Mysql-ndb-management

Mysql-server

Mysql-shared:可能被客户端或者服务器端的某些工具用到

Mysql-shared-compat

Mysql-test:测试Mysql,提供测试组件


一般来讲,完全的MYSQL只需要安装clientdevel share server


安装目录的作用

bin

data默认情况下将数据和索引存放的目录

inclued

lib

man

mysql-test

scripts安装时的初始化脚本

share某种特定语言的错误信息的,信息原始文件存放

sql-bench压力测试工具

support-file提供一些初始化的文件和脚本


mysql的配置文件

mysql Linux启动时读取配置文件的次序

/etc/my.cnf

/etc/mysql/my.cnf

$MYSQL_HOME/my.cnf

/path/to/filewhen default-extra-file=/path/to/file is speicified

~/my.cnf

原则:

*当前面的配置文件找不到,将按顺序读取下面的

*当多个配置文件中的选项不一样,那么,以他们的和为准

*如果有冲突的话以最后一个生效的为准

*MYSQL_HOME数据没有设定的话,会设定到basedirectory,即Mysql的数据目录中


WINDOWS的启动次序


安装完成后,Mysql的动作

生成3个管理员帐号

root@127.0.0.1@localhost @hostname


1个匿名帐号

anonymous@locahost @hostname



数据库对象

表,二维关系

表的结构

DESCuser;查看表的结构

SELECTHostUserPasswordFROM user;user表里只查看三个字段

SELECT* FROM user\G;查看所有的表内容


mysql来讲,使用主机名和IP地址是完全不同的类型,都需要配置密码

root用户对mysql具有一切权限


安装后第一步:

对管理员设置密码

第一种方式:

#mysqladmin-u root password 'new-password';

#mysqladmin-u root -h localhost password 'new-password';


mysql的选项可以不带空格,有时候带空格是错的


第二种:setpassword forroot@locahost=PASSWORED('');


第三种:updateuser set password=password('new-password') where user='root' andhost='127.0.0.1';


#第二个password是一个函数,表示加密存放

#每一次修改密码后,都应该执行

#flushprivileges

#通知mysql加载新密码


删除匿名用户

DROPUSER ‘’@localhost;

DROPUSER root@::1;

flushprivileges;


如何访问mysql

服务器端:mysql-server :3306

mysql-server可以工作在其他端口,这样可以启用两个mysql-server,但是用到的很少


客户端:mysql

连接远程mysql-server

mysql-uroot -h172.16.100.1 -predhat


#如果连接不上,需要给远程用户授权

grantall privileges on *.* to root@'%' identified by 'redhat'

flushprivileges;



mysql工具

mysql

mysqladmin

mysqlshow


他们的通用选项

和用户相关

--user = -u

--password = -p

和主机相关

--protocol指定协议

--host = -h指定连接到哪个服务器

--port服务器的端口

--socket指定socket文件在哪

--shared-memory-bash-name


--protocol可以接受的选项

tcp只要客户端和服务器端不在同一台主机,必然是tcp

客户端和服务端在一台主机上,基于内存,命令管道

soket unix linux

pipe windows

memory windows


--Ddb_name指定连接后设定某个数据库为默认数据库使用

--databasedb_name


selectdababase();显示当前默认数据库是谁

selectuser();显示当前用户身份


其他相关选项




不需要输入帐号密码登录

cd~

vim.my.cnf #放在启动读取的配置文件位置

[client]

user=root

password=redhat


mysql的使用方式:

交互式模式:Mysql命令行

mysql>提示符,表示mysql的命令可以在此输入并送到服务器端执行

; 结束符 每一个语句需要一个结束符,默认是;告诉mysql服务器这个语句结束了

有些语句不需要;这些语句都是在客户端执行的,例如

usermysql

selectdatabase()

STATS

->续行符

'>

''>

`>

/*>


#helpshow;查看帮助信息



批处理模式:mysql脚本.sql

#编辑一个sql脚本文件

vimtest.sql

CREATEDATABASE mydb;

CREATEDATABASE dean

#如何执行,使用输入重定向的方式执行

mysql-uroot -p < test.sql


或者在Mysql的交互式里面使用souce命令

>SOURCE/root/test.sql



mysql客户端工具使用:

\h帮助信息

exit \q退出此客户端


mysql可以保存用户的命令历史在内存中,甚至在用户的家目录生成一个文件.mysql_histroy来保存命令记录


快捷键

ctrl-w删除光标前的单词,可以用ctrl+y粘贴出来删除的内容

ctrl+y粘贴

ctrl+d删除一个字符

ctrl+a移到行首

ctrl+e移到行尾


tab键可以命令补全,但是有些安装版本把该功能禁用了,主要原因是为了节省资源。

\#对于新生成的数据库对象支持补全功能。

或者使用rehash命令


\c取消已经写好的命令

\d更换行结束符 ,例如: \d// 表示结束符换为//

\g表示忽略默认定义的结束符而直接送往服务器端执行

\G以列的方式显示每一行(竖排显示,这样如果一行内容很多就会显示的很有条理)

-E或者--vertical 明确要求竖排显示


mysql客户端命令和SQL语句

HELPkeyword可以查看对应命令的语法结构 例如helpselect


-e选项,不用连上数据库服务器直接提交命令,并退出回到bash

mysql-e “SHOW DATABASES”

mysql-e “SHOW DATABASES\G”

#支持各种mysql命令


#mysql.user需要指定对应的数据库,否则会报错

mysql-e “SELECT User,Host,Password FROM mysql.user”



mysql数据库相关的管理工作-----mysqladmin

在客户端执行一些管理工作

#它也可以使用.my.cnf里的帐号和密码

systax:

mysqladmin[option] command [arg] [command][arg]


mysqladminping


mysqladminping -h 172.16.199.2


它的相关command

create创建数据库

#mysqladmin create sampledb

drop删除数据库

#mysql来讲,删除数据库是不可逆的,一定要三思而后行

SHOWVARIABLES LIKE '%datadir%';

#查看数据文件的目录,mysql定义了三百多个变量,他们使用%%来引用


mysqladmindebug #mysqld运行过程中的错误保存在日志里



exend-status

mysqladminextended-status

#mysql允许过程中的统计数据,这些数据特别重要,尤其对于DBA

也可连上mysql后使用showstatus;查看


flush-hosts

flush-logs刷新日志

flush-privileges刷新权限定义

flush-status重置统计数据,一般不用

flush-tables

flush-threads


processlist当前有多少用户连接进来,进行什么样的操作

reload

refresh

shutdown关闭mysql数据库

start-slave启动从服务器

status

stop-slave

variables变量

version版本号


status扩展应用

msyqladminstatus –sleep 3 –count 2 #没三秒显示一次,一共显示两次

mysqladminstatus –sleep 3


图形话mysql监控工具

SQLyog

MYSQLFront

phpMyadmin

MysqlQuery Browser

MysqlAdministrator

MysqlWorkbench











分享到:
评论

相关推荐

    MySQL 基本原理

    MySQL 基本原理

    Mysql事务的基本使用-基本原理及特点ACID

    Mysql事务的基本使用-基本原理及特点ACID

    mysql基本介绍及安装启动

    本PPT介绍了Mysql基本架构、工作原理、安装启动流程。

    MySQL原理及优化

    本PPT共40页,开始介绍mysql的基本架构、查询过程详解、B-Tree索引原理、及详细实例。最后附送常用优化技巧。 培训用材料

    hibernate+mysql基本原理示例

    这是我写的一个小示例希望能给大家学习带来帮助 ---dragonzhao

    MySQL 5.1中文手冊

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MYSQL

    3.4.3 ISP MySQL服务 3.4.4 运营一个使用MySQL的Web服务器 3.5 MySQL的许可证和技术支持费用 3.5.1 付款信息 3.5.2 联系信息 3.6 商业性支持的类型 3.6.1 基本的电子邮件支持 3.6.2...

    mysql5 培训 PPT beta1

    从数据库原理的讲解,到MySQL的安装、配置、标准SQL的DML、DDL、DCL、高级查询、数据库设计、表约束、PowerDesigner12.5的使用、三大范式、索引、视图、存储过程和函数、触发器,MySQL权限原理及管理、数据的备份与...

    MySQL DISTINCT 的基本实现原理详解

    主要介绍了MySQL DISTINCT 的基本实现原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    MySQL中文参考手册.chm

    3.4.3 ISP MySQL服务 3.4.4 运营一个使用MySQL的Web服务器 3.5 MySQL的许可证和技术支持费用 3.5.1 付款信息 3.5.2 联系信息 3.6 商业性支持的类型 3.6.1 基本的电子邮件支持 ...

    MySQL 5.1参考手册

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MySQL 5.1官方简体中文参考手册

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    MySQL 5.1参考手册中文版

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过...

    MySQL中文参考手册

    * 3 MySQL的许可证和技术支持 o 3.1 MySQL的许可证政策 o 3.2 MySQL 使用的版权 + 3.2.1 可能的未来版权改变 o 3.3 MySQL商业性分发 o 3.4 许可证实例 + 3.4.1 销售使用 MySQL的产品 + 3.4.2 销售MySQL相关...

    MySQL 5.1参考手册 (中文版)

    2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装...

    mysql数据库实验报告 数据表的操作

    MySQL数据库的创建、查看、删除、使用命令。 表结构创建和修改、表约束的创建和修改; 表数据的插入、删除和修改; 表联系的创建和修改。

    mysql5.1中文手册

    使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 ...

    php&mySQL;完全实例教程

    详细介绍PHP4的使用和编程方法。第1章将介绍PHP的历史、工作原理、功能特点及网络资源等一些基本情况,使读者在使用PHP之前能够对PHP有一个整体的认识。第2章将介绍在UNIX和Windows两种平台下的安装和配置过程。第3...

Global site tag (gtag.js) - Google Analytics