Mysql体系结构
1. 数据库和数据库实例
1.1 区别
数据库:物理操作系统文件或其他形式文件类型的集合。
实例:由后台线程以及一个共享的内存区域组成。数据库实例才是真正用于操作数据库文件的。
Mysql被设计成一个单进程多线程架构的数据库。通常实例与数据库一一对应,但是集群情况下,可能存在一个数据库对应多个实例。
数据库实例在系统上表现就是一个进程。
1.2 关于启动
./mysqld_safe&
ps -ef | grep mysqld
启动后可以看到进程号,该进程就是数据库实例。
启动实例时,Mysql数据库会先读取配置文件,根据配置文件参数启动实例。无配置文件,Mysql会按照编译是的默认参数启动实例。
1.3 查找配置文件的读取位置顺序
mysql --help | grep my.cnf
按照/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf
参数datadir,指定了数据库所在的路径。Linux下默认为/usr/local/mysql/data,不过该路径只是一个链接,该链接指向了/opt/mysql_data目录,必须保证该目录的用户和权限,使得只有mysql用户和组可以访问
1.4 总结
更直白的解释:数据库是由一个个文件组成(一般都是二进制的文件),要对这些文件执行比如select、update等操作,需要通过数据库实例来完成。
应用程序只有通过数据库实例才能和数据库打交道。