一、关于MySQL数据文件
MySQL文件包括MySQL所建数据库文件和MySQL所用引擎创建的数据库文件。
在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm文件跟数据库存储引擎无关,也就是任何存储引擎的数据表都必须有.frm文件,命名方式为数据表名.frm,如user.frm. .frm文件可以用来在数据库崩溃时恢复表结构。
MySQL的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。
最常使用的2种存储引擎:
1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度。
2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
MySQL体系结构
https://www.cnblogs.com/wy123/category/1243550.html
二、MySQL状态
# systemctl status mysqld
# mysql -u root -p"MySQL@123" -e "show databases;"
# mysql -u root -p"MySQL@123" -e "show variables like '%storage_engine%';"
# mysql -u root -p"MySQL@123" -e "show variables like 'innodb%pool%';"
三、数据目录文件
# ls -l /var/lib/mysql
# ls -l /var/lib/mysql/mysql
auto.cnf 记录mysql数据库实例的server_uuid,安装的时候初始化,master和slave的server_uuid不能一样
ib_buffer_pool 缓存池,存放部分最近的查询记录和索引等,可以通过show variables like 'innodb%pool%'查
ibdata1 innodb表空间,如果采用innodb引擎,会默认10M大小
ib_logfile0 事务日志文件,是确保事务的REDO和UNDO,主要是确保事务的前滚和后滚,不是用来恢复用
ib_logfile1 事务日志文件,是确保事务的REDO和UNDO,不是用来恢复用
ibtmp1 临时表空间
mysql 系统数据库目录
performance_schema 系统数据库目录
sys 系统数据库目录
bogon-bin.000001 二进制日志文件,用于恢复,主从数据同步等
bogon-bin.000002 二进制日志文件,用于恢复,主从数据同步等
bogon-bin.index 二进制日志文件索引,用于恢复,主从数据同步等
mysql.sock MySQL socket文件
mysql.sock.lock MySQL socket锁文件
MySQL的数据库其相关文件都会存放在安装目录下data文件夹下的同命文件夹中,不同的存储引擎创建的表其文件也不一样,下面来认识下这些数据库文件。
四、MySQL数据库的证书文件
MySQL5.7.x 启动后,默认会在data(数据)目录下生成以下pem文件,这些文件就是用于启用SSL功能的。
这些文件是证书颁发机构(以“ca”开头),MySQL服务器进程(以“服务器”开头)和MySQL客户端(以“客户端”开头)的密钥和证书对。 此外,当不使用SSL时,MySQL使用private_key.pem和public_key.pem文件来安全地传输密码。
# ll /var/lib/mysql/*.pem
# mysql -u root -p"MySQL@123" -e "show global variables like '%ssl%';"
# mysql -u root -h 192.168.1.104 -p"MySQL@123"
mysql> \s
# mysql -u root -p"MySQL@123"
mysql> \s
五、参考
MySQL初始化root密码和允许远程访问
https://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html
MySQL 数据文件目录文件类型介绍
https://blog.51cto.com/11025159/1874729
你的MySQL服务器开启SSL了吗?
https://www.cnblogs.com/mysql-dba/p/7061300.html
如何查看MySQL的当前存储引擎?
https://www.cnblogs.com/zhming26/p/6322353.html
MySQL 开启SSL连接
https://blog.csdn.net/weixin_39845407/article/details/81708230
MySQL仅从.frm和.ibd文件恢复数据
https://blog.csdn.net/zhchs2012/article/details/79013951
SSL Connections in MySQL 5.7
https://www.percona.com/blog/2017/06/27/ssl-connections-in-mysql-5-7
How To Configure SSL/TLS for MySQL on Ubuntu 16.04
https://www.digitalocean.com/community/tutorials/how-to-configure-ssl-tls-for-mysql-on-ubuntu-16-04
MySQL5.7 Connecting Securely Using SSL
https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html
MySQL 5.7.x 中文文档
https://www.docs4dev.com/docs/zh/mysql/5.7/reference/preface.html#前言和法律声明
如何将.pem转换为.crt和.key?
https://vimsky.com/article/3608.html