http://xxrenzhe.blog.51cto.com/4036116/1395061
MySQL初识-架构-安装-初始化-连接-管理工具-数据文件
MySQL架构和结构分析
官方架构图
内部组件结构图
MySQL安装方式
MySQL初始化
MySQL工作模式及常用命令
交互式模式:mysql>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 交互式模式下的客户端命令 mysql>
help # 获取命令帮助 mysql>
? # 同上 mysql>
c # 取消命令执行 mysql>
g # 发送命令至服务器端 mysql>
G # 发送命令至服务器端,垂直显示结果 mysql>
q # 退出 mysql>
! # 执行系统shell命令 mysql>
s # 显示服务器端状态信息 mysql>
. /path/to/mysql_script .sql
# 批量执行sql mysql>
u # 切换数据库 # 交互式模式下的服务器端命令(需要命令提示符,默认为分号) mysql>
help contents 能够获取帮助的分类信息 mysql>
help keyword 获取关键字的帮助信息,如help select |
脚本模式:mysql < /path/to/mysql_script.sql
注:常用于主从复制批量导入数据时
连接MySQL
连接类型
本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1(localhost)地址或lo接口进行通信
远程通信:客户端与服务器端位于不同的主机,或在同一主机使用非回环地址通信
mysql客户端选项
实例
1
2
3
4
5
6
7
8
9
10
11
12
|
-u,--user # 指定连接用户 -h,--host # 指定连接主机 -p,--password # 指定连接密码 --protocol={tcp|socket|memory|pipe} #
指定连接协议 -P,--port #
指定连接端口,默认监听端口:tcp/3306 --socket # 指定本地连接的sock文件 --compress # 数据传输采用压缩格式 -D,--database # 指定连接后默认使用的数据库 -H,--html # 指定产生html输出 -X,--xml # 指定产生xml输出 --safe-updates #
拒绝使用无where子句的update或delete命令 # 使用实例:mysql -hlocalhost -uroot -p |
mysql命令提示符
1
2
3
4
5
6
|
mysql> # 等待输入命令 -> # 等待继续输入 ‘> # 等待结束单引号 “> # 等待结束双引号 `> # 等待结束反引号 结束注释 |
mysql的快捷键
1
2
3
4
5
|
ctrl+w: # 删除光标之前的单词 ctrl+u: # 删除光标之前至命令行首的所有内容 ctrl+y: #
粘贴所有ctrl+w或ctrl+u删除的内容 ctrl+a: # 移动光标至行首 ctrl+e: # 移动光标至行尾 |
MySQL管理工具mysqladmin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 使用格式:mysqladmin [options] command [arg] [,command
[arg]] … # 常用的command包括: create DB_Name: # 创建数据库 drop DB_Name: # 删除数据库 debug: # 打开调试日志并记录于error log中 status: # 显示简要状态信息 -- sleep #:设置间隔时长 --count #:设置显示的批次 extended-status: #
显示扩展信息,输出mysqld的各状态变量及赋值,相当于执行“mysql> show global
status” variables: # 输出mysqld的各服务器变量 flush-hosts: #
清空主机相关的缓存:DNS解析缓存;此前因为连接错误次数过多而被拒绝访问mysqld的主机列表 flush-logs: #
日志滚动,只能滚动二进制日志和中继日志 refresh: #
相当于同时使用flush-hosts和flush-logs flush-privileges: #
通知mysqld重读授权表 reload: # 功能同“flush-privileges” flush-status: # 重置状态变量的值 flush-tables: # 关闭当前打开的表文件句柄 flush-threads: # 清空线程缓存 kill : #
杀死指定的线程,需指定线程ID;可以一次杀死多个线程,以逗号分隔,但不能有多余空格 password: # 修改当前用户的密码 ping : #
模拟ping操作,检测mysqld是否在线 processlist: # 显示mysqld线程列表 shutdown : #
关闭mysqld进程 start-slave,stop-slave: #
启动/关闭从服务器线程 |
MySQL数据文件解析
MyISAM表:每表有3个文件,都位于数据库目录中
1
2
3
|
tb_name.frm: # 表结构定义文件 tb_name.MYD: # 数据文件 tb_name.MYI: # 索引文件 |
InnoDB表:有2种存储方式
默认方式:每表有1个独立文件和一个多表共享的文件
1
2
|
tb_name.frm: # 表结构定义文件,位于数据库目录中 ibdata #:#
共享的表空间文件,默认位于数据目录(datadir指向的目录)中,如ibdata1 |
自定义方式:独立的表空间
1
2
3
4
5
6
|
tb_name.frm: #表结构定义文件 tb_name.ibd: # 独有的表空间文件 # 在MySQL初始化中打开独立表空间功能的方法: vi /etc/my .cnf
(在[mysqld]段下添加) innodb_file_per_table = ON # 注:表空间:table
space,是由InnoDB管理的特有格式的数据文件,内部可同时存储数据和索引 |