数据库(database)
物理操作系统文件或其他形式文件的集合。MySQL中,数据库文件可以是 frm、myd、myi、ibd结尾的文件。使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存在于内存中的文件,但是定义不变。
.frm、.myd、.myi文件是MySQL的原始数据文件
- .frm 表结构文件
- .myd 表数据文件
- .myi 表索引文件
数据库实例(instance)
由数据库后台进程/线程以及一个共享内存组成。共享内存可以被运行的后台进程/线程所共享。数据库实例才是真正用来操作数据库文件的。
实例和数据库通常是一一对应,但是在集群情况下可能存在一个数据库被多个实例使用的情况。
MySQL被设计为一个单进程多线程架构的数据库。MySQL数据库实例在系统上的表现就是一个进程。
启动MySQL数据库实例
./mysqld_safe &
查看实例
ps -ef|grep mysqld
当启动实例时,MySQL数据库会去读取配置文件,根据配置文件的参数来启动数据库实例,可以没有配置文件,此时,MySQL会按照编译时默认参数设置启动实例。
[root@iz2ze20vl8jnph0si0n7jsz mysql]# mysql --help|grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
按照/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 的顺序读取配置文件。不同的配置文件有相同的参数,MySQL会以最后读到的参数为准。