您可以InnoDB通过--innodb-read-only在服务器启动时启用配置选项来查询MySQL数据目录位于只读介质上的表 。
如何启用
要为只读操作准备实例,请确保将所有必需的信息刷新 到数据文件,然后再将其存储在只读介质上。在禁用更改缓冲(innodb_change_buffering=0)的情况下运行服务器,并执行慢速关机。
要为整个MySQL实例启用只读模式,请在服务器启动时指定以下配置选项:
--innodb-read-only=1
如果实例位于只读媒体(如DVD或CD)上,或者/var目录不可全部写入: --pid-file=path_on_writeable_media和--event-scheduler=disabled
--innodb-temp-data-file-path。此选项指定InnoDB临时表空间数据文件的路径,文件名和文件大小 。默认设置为ibtmp1:12M:autoextend,它将ibtmp1在数据目录中创建临时表空间数据文件。要为只读操作准备实例,请将其设置 innodb_temp_data_file_path为数据目录之外的位置。该路径必须相对于数据目录。例如:
--innodb-temp-data-file-path=../../../tmp/ibtmp1:12M:autoextend
从MySQL 8.0开始,启用会 innodb_read_only阻止所有存储引擎的表创建和删除操作。这些操作会修改mysql系统数据库中的数据字典表 ,但是这些表使用 InnoDB存储引擎,并且在innodb_read_only启用后无法修改。相同的限制适用于任何修改数据字典表的操作,例如ANALYZE TABLE和 。 ALTER TABLE tbl_name ENGINE&#