type, which occurred in MySQL 5.7. Statement-based replication  requires the consecutive auto- increment lock mode to ensure that auto-increment values are assigned in a predictable and repeatable order for a given sequence of SQL statements, whereas row-based replication  is not sensitive to the execution order of SQL statements. Thus, this change is known to be incompatible with statement based replication, and may break some applications or user-generated test suites that depend on sequential auto increment. The previous default can be restored by setting innodb_autoinc_lock_mode=1; 

•The default value of the innodb_flush_neighbors  system variable changes from 1  (enable) to 0  (disable). This is done because fast IO (SSDs) is now the default for deployment. We expect that for the majority of users, this results in a small performance gain. Users who are using slower hard drives may see a performance loss, and are encouraged to revert to the previous defaults by setting innodb_flush_neighbors=1 . 

•The default value of the innodb_max_dirty_pages_pct_lwm  system variable changed from 0  (%) to 10  (%). With innodb_max_dirty_pages_pct_lwm=10 , InnoDB increases its flushing activity when >10% of the buffer pool contains modified (‘dirty’) pages. The purpose of this change is to trade off peak throughput slightly, in exchange for more consistent performance. 

•The default value of the innodb_max_dirty_pages_pct  system variable changed from 75  (%) to 90 (%). This change combines with the change to innodb_max_dirty_pages_pct_lwm  and together they ensure a smooth InnoDB flushing behavior, avoiding flushing bursts. To revert to the previous behavior, set innodb_max_dirty_pages_pct=75  and innodb_max_dirty_pages_pct_lwm=0 . 

## Performance Schema Defaults 

•Performance Schema Meta Data Locking (MDL) instrumentation is turned on by default. The compiled default for performance-schema-instrument=’wait/lock/metadata/sql/%=ON’  changed from OFF  to ON . This is an enabler for adding MDL oriented views in SYS. 

•Performance Schema Memory instrumentation is turned on by default. The compiled default for performance-schema-instrument=’memory/%=COUNTED’  changed from OFF  to COUNTED . This is important because the accounting is incorrect if instrumentation is enabled after server start, and you could get a negative balance from missing an allocation, but catching a free. 

•Performance Schema Transaction instrumentation is turned on by default. The compiled default for performance-schema-consumer-events-transactions-current=ON , performance- schema-consumer-events-transactions-history=ON , and performance-schema- instrument=’transaction%=ON’  changed from OFF  to ON . 

## Replication Defaults 

•The default value of the log_bin  system variable changed from OFF  to ON . In other words, binary logging is enabled by default. Nearly all production installations have the binary log enabled as it is used for replication and point-in-time recovery. Thus, by enabling binary log by default we eliminate one configuration step, enabling it later requires a mysqld  restart. Enabling it by default also provides better test coverage and it becomes easier to spot performance regressions. Remember to also set server_id  (see following change). The 8.0 default behavior is as if you issued ./mysqld --log-bin --server-id=1 . If you are on 8.0 and want 5.7 behavior you can issue ./mysqld --skip-log-bin --server-id=0 . 

•The default value of the server_id  system variable changed from 0  to 1  (combines with the change to log_bin=ON ). The server can be started with this default ID, but in practice you must set the server- id  according to the replication infrastructure being deployed, to avoid having duplicate server ids. 

•The default value of the log-slave-updates  system variable changed from OFF  to ON . This causes a replica to log replicated events into its own binary log. This option is required for Group Replication, and also ensures correct behavior in various replication chain setups, which have become the norm today. 

