MySQL登录成功后使用SHOW VARIABLES LIKE 'datadir';,大概Linux体系下查看vim /etc/my.cnf,找datadir项,可查看数据存储的目录。认准一个使用InnoDB引擎的非空数据库,在datadir/数据库名的目录下会发现有.frm、.idb文件、.opt类型的文件。
注意mysql5.5.7到5.6.6的版本中的数据,是放在data/ibdata1文件中的。
.idb叫做独立表空间,ibdata1叫做体系表空间。
使用show variables like 'innodb_file_per_table';可查看相关设置,如果是OFF,则表示使用ibdata1文件。ON表示使用独立表空间。
MyISAM引擎.frm、.MYD、.MYI、.opt文件是什么的?
MySQL登录成功后使用SHOW VARIABLES LIKE 'datadir';,大概Linux体系下查看vim /etc/my.cnf,找datadir项,可查看数据存储的目录。认准一个使用InnoDB引擎的非空数据库,在datadir/数据库名的目录下会发现有.frm、.MYD、.MYI、.opt文件类型的文件。
部分基于.frm、.opt。
试试就知道,开了一个虚拟机找一个测试库,.frm非文本文件没法改,修改某个库的.opt文件,将default-collation=utf8mb4_unicode_ci;改为default-collation=utf8mb4_general_ci;重启MySQL服务,执行SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'db_name';发现编码同步做了更改。
扩展
MyISAM:缓冲池和innodb的不一样,是键缓存,参数为key_buffer_size;
查看:SHOW VARIABLES LIKE 'key_buffer_size'; SHOW STATUS LIKE 'Key_blocks_%';单元为字节。
设置:在my.cnf中设置key_buffer_size = 256M后重启。
InnoDB:
查看:SHOW VARIABLES LIKE 'innodb_buffer_pool_size';单元为字节。
设置:在my.cnf中设置innodb_buffer_pool_size = 256M后重启。
不想要重启,可以使用set globak k=v,(5.7及以上可用)。但是无法持久化保存。
多个缓冲池