mysql 管理instance_MySQL从零开始——第三章 MySQL体系结构

144741857_1_20180919075058395

一、数据库和数据库实例的概念

在数据库领域中有2个词很容易混淆——数据库(database)和实例(instance)

1、数据库

物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放于内存之中的文件,但是定义仍然不变。

2、数据库实例

MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行的后台线程所共享。需要牢记的是,数据库实例才是真正用于操作数据库文件的。

3、数据库与实例之间的关系

在MySQL数据库中,实例与数据库的关系通常是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例。在集群情况下可能存在一个数据库被多个数据实例使用的情况。

MySQL数据库实例在系统上的表现就是一个进程。在Linux操作系统中通过以下命令启动MySQL数据库实例,并通过命令ps观察MySQL数据库启动后的进程情况:[root@multi_instance ~]# systemctl start mysqld

[root@multi_instance ~]# systemctl status mysqld

● mysqld.service - MySQL Server 3306

Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)

Active: active (running) since Tue 2018-09-18 02:25:21 EDT; 10s ago

Docs: man:mysqld(8)

https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html

Main PID: 2201 (mysqld)

CGroup: /system.slice/mysqld.service

└─2201 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/data/mysql/mysql...

Sep 18 02:25:21 multi_instance systemd[1]: Started MySQL Server 3306.

Sep 18 02:25:21 multi_instance systemd[1]: Starting MySQL Server 3306...

[root@multi_instance ~]# ps aux | grep mysql

mysql 2201 5.5 7.0 1754304 131132 ? Ssl 02:25 0:01 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/data/mysql/mysql.pid

root 2231 0.0 0.0 112704 968 pts/0 S+ 02:25 0:00 grep --color=auto mysql

4、数据库实例的启动

MySQL数据库中,可以没有配置文件,在这种情况下,MySQL会按照编译时的默认参数设置启动实例。[root@multi_instance ~]# mysql --help | grep my.cnf

order of preference, my.cnf, $MYSQL_TCP_PORT,

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

通过上面的命令可以看到,MySQL数据库是按“/etc/my.cnf→/etc/mysql/my.cnf→/usr/local/mysql/etc/my.cnf→~/.my.cnf”的顺序读取配置文件的。

问题1:如果几个配置文件中都有同一个参数,MySQL数据库以哪个配置文件为主?

答:MySQL数据库会以读取到的最后一个配置文件中的参数为准。

问题2:如果配置文件不在上述路径下或配置文件的名字不是my.cnf,此时该如何处理?

二、MySQL体系结构

再来回忆下数据库与数据库实例的理解。

数据库是由一个个文件组成(一般来说都是二进制的文件)的,要对这些文件执行诸如select、insert、update和delete之类的数据库操作是不能通过简单的操作文件来更改数据库的内容,需要通过数据库实例来完成对数据库的操作。

1、MySQL数据库体系结构单进程多线程

like Microfote SQL Server

Oracle多进程架构(except Windows)

插件式存储引擎架构

Like Linux file system。一个表是一个分区,引擎就是分区的文件系统

存储引擎的对象是表

show tables status:可以看到每个表对应的是哪个存储引擎

重点学习与了解的存储引擎为InnoDB

2、MySQ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值