MySQL Server Administration > The MySQL Server > Server System Variables
secure_file_priv
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_secure_file_priv
The InnoDB Storage Engine > InnoDB Startup Options and System Variables
innodb_flush_log_at_trx_commit
参数作用:控制严格服从 ACID 与高性能之间的平衡。.
官网地址:https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit
在阅读下面的文字之前,可以先了解 https://blog.csdn.net/u010833547/article/details/109293213
在 MySQL 写日志的时候,可以看成两部分:
1. write: 将 log buffer 的数据写入磁盘内存映射(一块由 OS 管理的区域)
2. flush: 将磁盘内存映射的数据 flush 到磁盘
该参数可取 3 种值:0、1、2。
innodb_flush_log_at_trx_commit = 1
这是默认模式,严格服从 ACID。
每次事务提交时 MySQL 都会执行 write + flush。
该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机崩溃的情况下,binary log 只有可能丢失最多一个语句或者一个事务。如果是 autocommit = 1,那么就是丢失一个语句。
innodb_flush_log_at_trx_commit = 0
MySQL 每秒一次地执行 write + flush。该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
该模式速度最快,但不太安全,mysqld 进程的崩溃或者操作系统的崩溃都会导致上一秒钟所有事务数据的丢失。
innodb_flush_log_at_trx_commit = 2
每次事务提交时 MySQL 都会执行 write,但是 flush 操作以每秒一次的频率执行。
该模式速度较快,也比 0 安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。
相关资料可以查看:
关于 Linux 同步 IO:https://blog.csdn.net/zhouxinlin2009/article/details/89633464
参考解释:https://blog.csdn.net/u010833547/article/details/109293213
innodb_log_buffer_size
https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_log_buffer_size