mysql的执行流程:

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

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

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

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

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

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

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

每一个SQL语句都有很多执行路径(比如多表关联查询时,哪两个表先结合查询,要通过优化器分析)。优化的目的就是在这些执行路径里面,选择一个最优的执行路径。

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

1.逻辑对象:表,微微关系,索引,视图,触发器,存储过程,存储函数,时间调度器,游标,用户。

2.物理对象:数据管理组件(也可称为元数据),存储引擎,存储为物理文件。

数据库管理系统的基本功能:

管理存储,安全管理,元数据管理,事务管理,ACID(原子性,一致性,隔离性,持久性),连接管理,性能优化,备份和还原机制,相应数据查询/修改请求。

存储引擎:将数据存储下来的中间层

(数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。)

如mysql数据库引擎:   MyISAM和InnoDB(MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持;但是MyISAM表的查询操作效率和速度都比InnoDB要快)

日志文件:

Redo、Undo、Data、Index、Error、Query、Slow

什么是实例?

进程+多个线程+预分配的内存结构

MySQL多实例:

多个进程+多个线程+多个预分配内存结构

多个配置文件:

1)多个端口
2)多个数据目录
3)多个socket文件

./mysql_install_db --user --basedir --datadir

1)创建多个数据目录
[root@elk01 ~]# mkdir -p /data/330{7..9}
2)创建多个配置文件

vim /data/3307/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /data/3307/data
port = 3307
server_id = 7
log-bin = /data/3307/data/mysql-bin
log_error = /data/3307/data/mysql.err
socket = /data/3307/data/mysql.sock

vim /data/3308/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /data/3308/data
port = 3308
server_id = 8
log-bin = /data/3308/data/mysql-bin
log_error = /data/3308/data/mysql.err
socket = /data/3308/data/mysql.sock

vim /data/3309/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /data/3309/data
port = 3309
server_id = 9
log-bin = /data/3309/data/mysql-bin
log_error = /data/3309/data/mysql.err
socket = /data/3309/data/mysql.sock

3)初始化
[root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
[root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
[root@elk01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data

4)启动MySQL
[root@elk01 scripts]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[root@elk01 scripts]# mysqld_safe --defaults-file=/data/3308/my.cnf &
[root@elk01 scripts]# mysqld_safe --defaults-file=/data/3309/my.cnf &

5)设置密码
[root@elk01 scripts]# mysqladmin -uroot -S /data/3307/data/mysql.sock password '3307'
[root@elk01 scripts]# mysqladmin -uroot -S /data/3308/data/mysql.sock password '3308'
[root@elk01 scripts]# mysqladmin -uroot -S /data/3309/data/mysql.sock password '3309'

6)查看
[root@elk01 scripts]# mysql -uroot -p3307 -S /data/3307/data/mysql.sock -e "show variables like 'server_id'"
Warning: Using a password on the command line interface can be insecure.
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 7 |
+---------------+-------+
[root@elk01 scripts]# mysql -uroot -p3308 -S /data/3308/data/mysql.sock -e "show variables like 'server_id'"
Warning: Using a password on the command line interface can be insecure.
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 8 |
+---------------+-------+
[root@elk01 scripts]# mysql -uroot -p3309 -S /data/3309/data/mysql.sock -e "show variables like 'server_id'"
Warning: Using a password on the command line interface can be insecure.
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 9 |
+---------------+-------+

[root@elk01 scripts]# vim /usr/local/bin/mysql3307
mysql -uroot -p3307 -S /data/3307/data/mysql.sock

[root@elk01 scripts]# vim /usr/local/bin/mysql3308
mysql -uroot -p3308 -S /data/3308/data/mysql.sock

[root@elk01 scripts]# vim /usr/local/bin/mysql3309
mysql -uroot -p3309 -S /data/3309/data/mysql.sock

[root@elk01 scripts]# chmod +x /usr/local/bin/mysql330*

在没有备份的情况下表损坏企业案例:

1)找开发拿到建表语句
2)创建一个新的MySQL实例,创建表
3)删除独立表空间
mysql> alter table city_new discard tablespace;
4)拷贝旧表的表空间文件到新表下
5)导入独立表空间
mysql> alter table city_new import tablespace;

转载于:https://www.cnblogs.com/du-jun/p/10712281.html

Mysql原理+ 多实例 +表损坏相关推荐

  1. Mysql原理篇之表空间---05

    Mysql原理篇之表空间---05 前言 回顾 页面类型 页面通用部分 独立表空间结构 区(extent)的概念 段(segment)的概念 区的分类 整理 XDES Entry链表 链表基节点 链表 ...

  2. 数据库服务器不支持innodb存储引擎,MySQL InnoDB存储引擎表损坏恢复指南

    目的 故障排除步骤 适用于: MySQL服务器版本 5.0至5.7[5.0版到5.7] A 第一反应 A.1 停止,备份,重启 停止MySQL 服务器.如果它已经下线或崩溃,跳到步骤 2. 代码: / ...

  3. php mysql修复_MySQL数据表损坏的巧妙修复

    此文章主要向大家描述的是正确修复损坏的MySQL数据表的实际操作流程,我们大家都知道断电或者非正常关机往往会导致MySQL(和PHP搭配之最佳组合)数据库出现错误.其主要有两种方法: 一种方法使用My ...

  4. mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...

    该篇文章我们介绍由于非法硬件关机,造成了MySQL数据库的数据表损坏,数据库不能正常运行的一个实例.下面学步园小编来讲解下MySQL数据库非法关机造成数据表损坏怎么排查? MySQL数据库非法关机造成 ...

  5. mysql中什么来维护表之间_转mysql维护索引和表

    即使用正确的类型创建了表并加上了合适的索引,工作也没有结束,还需要维护表和索引来确保他们都正常工作.维护表有三个主要的目的:找到并修复损坏的表,维护准确的索引统计信息,减少碎片. 一.找到并修复损坏的 ...

  6. 非法关机 mysql_一次非法关机导致mysql数据表损坏的实例解决 -电脑资料

    排查修复数据表的经过: 2.启动mysql服务,卸载和关闭rpm安装的mysql服务 (昨天安装postfix好像yum安装了mysql),用netstat -anp |grep mysqld 命令查 ...

  7. 非法关机 mysql_一次非法关机造成mysql数据表损坏的例子

    本文介绍由于非法硬件关机,造成了mysql的数据表损坏,数据库不能正常运行的一个实例,接下来是作者排查错误的过程,希望对大家能有所帮助. 排查修复数据表的经过: 1.访问网页,提示错误,连接不到数据库 ...

  8. mysql数据库隐式表_详解MySQL数据库常见的索引问题:无索引,隐式转换,附实例说明...

    概述 在这些年的工作之中,由于SQL问题导致的数据库故障层出不穷,而索引问题是SQL问题中出现频率最高的,常见的索引问题包括:无索引,隐式转换. 索引问题 1.无索引 当数据库中出现访问表的SQL无索 ...

  9. mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享

    ##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...

最新文章

  1. ARM、FPGA和DSP的特点和区别是什么?(转)
  2. Windows系统文件详解【大全】
  3. AIX 访问Linux NFS共享错误案例
  4. 成功导入并运行breeze jar库
  5. 秒拍,一款为你纪录万千世界的好玩短频App是怎么运作的?
  6. Android之实现夸克浏览器书签和历史页面滑动时候右上角图标切换效果
  7. 扩展坞可以把手机投到显示器吗_解锁4K 60Hz毕亚兹USB Type-C扩展坞体验
  8. jaxb java xml序列化_XML编程总结(六)——使用JAXB进行java对象和xml格式之间的相互转换...
  9. asp.net中使用#include语法将文件添加到页面
  10. 如何训练自己的编程思路
  11. db2判断字符为空_算法之字符串转换为数字
  12. oracle r修改表名,oracle中修改表名
  13. MLP 又又又升级了!港大商汤开源首个用于检测与分割任务的MLP架构
  14. 怎样组建家庭计算机网络,不要再求人了,教你最详细的家庭网络组建方法。
  15. worldpress自定义页面
  16. L1-030 一帮一 (15分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生
  17. 【电路补习笔记】8、稳压电路 —— 线性电源及LDO
  18. Win11怎么改系统语言?Win11系统语言简体改繁体的方法
  19. Java 枚举类型的应用
  20. 电话聊天狂人(25 分)

热门文章

  1. BZOJ4415: [Shoi2013]发牌
  2. PAT:1050. String Subtraction (20) AC
  3. 在线图片水平/垂直均等切割工具
  4. 死磕 java同步系列之AQS起篇
  5. 数据库MySQL--常见基础命令
  6. 算法之【辗转相除法】
  7. 在 Windows 下远程桌面连接 Linux - XManager 篇
  8. 关于富士通 T5220服务器故障处理
  9. HP 维保自助查询链接
  10. H3C交换机配置远程管理配置