理解数据库和实例

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

 

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

在mysql中,实例和数据库的关系通常是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例。但是,在集群情况下,可能存在一个数据库对应多个实例的情况。

Mysql被设计为一个单进程多线程架构的数据库。Mysql数据库实例在系统上的表现就是一个进程。用ps –ef | grep mysql 

其中的进程9822,就是mysql实例,而mysqld_safe & 只是启动mysql实例方法的一种。

如果没有配置文件,mysql会按照编译时的默认参数设置启动实例。如果有配置文件,则按照配置文件启动,这里要注意的是,如果存在多个配置文件,则以mysql数据库读取到的最后一个配置文件为准。

读取顺序是:

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

因此,当遇到修改配置文件确不生效时,除了考虑设置错误外,还应该考虑到是不是当前应用的不是你修改过的配置文件。

原文地址:https://www.cnblogs.com/shay/p/11593258.html