https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-features-different-data-types.html SOURCE='source' REPLICA='replica' ### GTID based rm -rf $SOURCE/ bin/mysqld --initialize-insecure --basedir=$PWD --datadir=$PWD/$SOURCE --log-error-verbosity=3 bin/mysqld_safe --no-defaults --basedir=$PWD --datadir=$PWD/$SOURCE --core-file --socket=/tmp/mysql_master.sock --port=3333 --log-error=$PWD/$SOURCE/log.err --log-bin=$SOURCE-bin --server_id=1 --mysqlx=0 --log-error-verbosity=3 --local-infile=1 --gtid_mode=ON --log-bin --log-slave-updates --enforce-gtid-consistency --secure-file-priv=/tmp/ --performance-schema=ON --binlog-rows-query-log-events=ON 2>&1 & rm -rf $REPLICA/ bin/mysqld --initialize-insecure --basedir=$PWD --datadir=$PWD/$REPLICA --log-error-verbosity=3 bin/mysqld_safe --no-defaults --basedir=$PWD --datadir=$PWD/$REPLICA --core-file --socket=/tmp/mysql_slave.sock --port=6666 --log-error=$PWD/$REPLICA/log.err --log-bin=$REPLICA-bin --server_id=2 --mysqlx=0 --log-error-verbosity=3 --local-infile=1 --gtid_mode=ON --log-bin --log-slave-updates --enforce-gtid-consistency --secure-file-priv=/tmp/ --performance-schema=ON 2>&1 & - Master bin/mysql -uroot -S/tmp/mysql_master.sock --prompt='Source>' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 8.0.42 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. Source>CREATE USER 'repl'@'localhost' IDENTIFIED BY 'slavepass'; Query OK, 0 rows affected (0.01 sec) Source>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost'; Query OK, 0 rows affected (0.00 sec) Source> Source>CREATE USER 'repl'@'127.0.0.1' IDENTIFIED BY 'slavepass'; Query OK, 0 rows affected (0.01 sec) Source>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; Query OK, 0 rows affected (0.00 sec) Source>FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) -- Slave bin/mysql -uroot -S/tmp/mysql_slave.sock --prompt='Replica>' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 8.0.42 MySQL Community Server - GPL Copyright (c) 2000, 2025, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. Replica>CHANGE MASTER TO -> MASTER_HOST='127.0.0.1', -> MASTER_PORT=3333, -> MASTER_USER='repl', -> MASTER_PASSWORD='slavepass', -> MASTER_AUTO_POSITION = 1,GET_MASTER_PUBLIC_KEY=1; Query OK, 0 rows affected, 9 warnings (0.02 sec) Replica>start slave; Query OK, 0 rows affected, 1 warning (0.02 sec) Replica>show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 127.0.0.1 Master_User: repl Master_Port: 3333 Connect_Retry: 60 Master_Log_File: source-bin.000001 Read_Master_Log_Pos: 1422 Relay_Log_File: bug118101-relay-bin.000002 Relay_Log_Pos: 1640 Relay_Master_Log_File: source-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 1422 Relay_Log_Space: 1854 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: a7f055f3-30b1-11f0-992d-020017293913 Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: a7f055f3-30b1-11f0-992d-020017293913:1-5 Executed_Gtid_Set: a7f055f3-30b1-11f0-992d-020017293913:1-5 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 1 Network_Namespace: 1 row in set, 1 warning (0.00 sec) -- master Source>create database test; Query OK, 1 row affected (0.01 sec) Source>use test Database changed Source>CREATE TABLE `demo` ( -> `id` bigint NOT NULL AUTO_INCREMENT, -> `created_at` datetime NOT NULL, -> PRIMARY KEY (`id`) -> ) ENGINE=InnoDB; Query OK, 0 rows affected (0.02 sec) Source>insert into demo (created_at) values (now()); Query OK, 1 row affected (0.01 sec) Source>insert into demo (created_at) values (now()); Query OK, 1 row affected (0.00 sec) Source>insert into demo (created_at) values (now()); Query OK, 1 row affected (0.00 sec) -- slave Replica>use test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed Replica>set sql_log_bin = 0; Query OK, 0 rows affected (0.00 sec) Replica>ALTER TABLE `demo` CHANGE `created_at` `created_at` datetime(6) NOT NULL; Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 -- master Source>insert into demo (created_at) values (now()); Query OK, 1 row affected (0.01 sec) -- slave Replica>show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 127.0.0.1 Master_User: repl Master_Port: 3333 Connect_Retry: 60 Master_Log_File: source-bin.000001 Read_Master_Log_Pos: 3353 Relay_Log_File: bug118101-relay-bin.000002 Relay_Log_Pos: 3209 Relay_Master_Log_File: source-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 1105 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'a7f055f3-30b1-11f0-992d-020017293913:11' at source log source-bin.000001, end_log_pos 3322. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any. Skip_Counter: 0 Exec_Master_Log_Pos: 2991 Relay_Log_Space: 3785 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1105 Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'a7f055f3-30b1-11f0-992d-020017293913:11' at source log source-bin.000001, end_log_pos 3322. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any. Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: a7f055f3-30b1-11f0-992d-020017293913 Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 250514 12:57:38 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: a7f055f3-30b1-11f0-992d-020017293913:1-11 Executed_Gtid_Set: a7f055f3-30b1-11f0-992d-020017293913:1-10 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 1 Network_Namespace: 1 row in set, 1 warning (0.00 sec) Replica>select * from performance_schema.replication_applier_status_by_worker\G *************************** 1. row *************************** CHANNEL_NAME: WORKER_ID: 1 THREAD_ID: NULL SERVICE_STATE: OFF LAST_ERROR_NUMBER: 1105 LAST_ERROR_MESSAGE: Worker 1 failed executing transaction 'a7f055f3-30b1-11f0-992d-020017293913:11' at source log source-bin.000001, end_log_pos 3322; Could not execute Write_rows event on table test.demo; Unknown error, Error_code: 1105; handler error HA_ERR_CORRUPT_EVENT; the event's source log source-bin.000001, end_log_pos 3322 LAST_ERROR_TIMESTAMP: 2025-05-14 12:57:38.850671 LAST_APPLIED_TRANSACTION: a7f055f3-30b1-11f0-992d-020017293913:10 LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2025-05-14 12:57:15.575085 LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2025-05-14 12:57:15.575085 LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 2025-05-14 12:57:15.576464 LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 2025-05-14 12:57:15.579572 APPLYING_TRANSACTION: a7f055f3-30b1-11f0-992d-020017293913:11 APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2025-05-14 12:57:38.848758 APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2025-05-14 12:57:38.848758 APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 2025-05-14 12:57:38.850363 LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_RETRIES_COUNT: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 *************************** 2. row *************************** CHANNEL_NAME: WORKER_ID: 2 THREAD_ID: NULL SERVICE_STATE: OFF LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION: LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION: APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_RETRIES_COUNT: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 *************************** 3. row *************************** CHANNEL_NAME: WORKER_ID: 3 THREAD_ID: NULL SERVICE_STATE: OFF LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION: LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION: APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_RETRIES_COUNT: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 *************************** 4. row *************************** CHANNEL_NAME: WORKER_ID: 4 THREAD_ID: NULL SERVICE_STATE: OFF LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION: LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION: APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000 LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 APPLYING_TRANSACTION_RETRIES_COUNT: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0 APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000 4 rows in set (0.00 sec) Replica>show global variables like 'slave_type_conversions'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | slave_type_conversions | | +------------------------+-------+ 1 row in set (0.00 sec)