配置參數說明 Server-id ID值唯一的標識了復制群集中的主從服務器,因此它們必須各不相同。Master_id必須為1到232-1之間的一個正整數值,slave_id值必須為2到232-1之間的一個正整數值。 Log-bin 表示打開binlog,打開該選項才可以通過I/O寫到Slave的relay-log,也是可以進行replication的前提。 Binlog-do-db 表示需要記錄二進制日志的數據庫。如果有多個數據可以用逗號分隔,或者使用多個binlog-do-dg選項。 Binglog-ingore-db 表示不需要記錄二進制日志的數據庫,如果有多個數據庫可用逗號分隔,或者使用多binglog-ignore-db選項。 Replicate-do-db 表示需要同步的數據庫,如果有多個數據可用逗號分隔,或者使用多個replicate-do-db選項。 Replicate-ignore-db 表示不需要同步的數據庫,如果有多個數據庫可用逗號分隔,或者使用多個replicate-ignore-db選項。 Master-connect-retry master-connect-retry=n表示從服務器與主服務器的連接沒有成功,則等待n秒(s)后再進行管理方式(默認設置是60s)。如果從服務器存在mater.info文件,它將忽略些選項。 Log-slave-updates 配置從庫上的更新操作是否寫入二進制文件,如果這臺從庫,還要做其他從庫的主庫,那么就需要打這個參數,以便從庫的從庫能夠進行日志同步。 Slave-skip-errors 在復制過程,由于各種原因導致binglo中的sql出錯,默認情況下,從庫會停止復制,要用戶介入。可以設置slave-skip-errors來定義錯誤號,如果復制過程中遇到的錯誤是定義的錯誤號,便可以路過。如果從庫是用來做備份,設置這個參數會存在數據不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。 --slave-skip-errors=[err_code1,err_code2,...|all|ddl_exist_errors] Command-Line Format --slave-skip-errors=name Option-File Format slave-skip-errors System Variable Name slave_skip_errors Variable Scope Global Dynamic Variable No Permitted Values Type string Default OFF Valid Values OFF [list of error codes] all ddl_exist_errors MySQL 5.6 as well as MySQL Cluster NDB 7.3 support an additional shorthand value ddl_exist_errors, which is equivalent to the error code list 1007,1008,1050,1051, 1054,1060,1061,1068,1094,1146. Examples:
--slave-skip-errors=1062,1053 --slave-skip-errors=all --slave-skip-errors=ddl_exist_errors Sync_binlog=1 Or N Sync_binlog的默認值是0,這種模式下,MySQL不會同步到磁盤中去。這樣的話,Mysql依賴操作系統來刷新二進制日志binary log,就像操作系統刷新其他文件的機制一樣。因此如果操作系統或機器(不僅僅是Mysql服務器)崩潰,有可能binlog中最后的語句丟失了。要想防止這種情況,可以使用sync_binlog全局變量,使binlog在每N次binlog寫入后與硬盤同步。當sync_binlog變量設置為1是最安全的,因為在crash崩潰的情況下,你的二進制日志binary log只有可能丟失最多一個語句或者一個事務。但是,這也是最慢的一種方式(除非磁盤有使用帶蓄電池后備電源的緩存cache,使得同步到磁盤的操作非常快)。 即使sync_binlog設置為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。如果使用InnoDB表,Mysql服務器處理COMMIT語句,它將整個事務寫入binlog并將事務提交到InnoDB中。如果在兩次操作之間出現崩潰,重啟時,事務被InnoDB回滾,但仍然存在binlog中。可以用-innodb-safe-binlog選項來增加InnoDB表內容和binlog之間的一致性。(注釋:在Mysql 5.1版本中不需要-innodb-safe-binlog;由于引入了XA事務支持,該選項作廢了),該選項可以提供更大程度的安全,使每個事務的binlog(sync_binlog=1)和(默認情況為真)InnoDB日志與硬盤同步,該選項的效果是崩潰后重啟時,在滾回事務后,Mysql服務器從binlog剪切回滾的InnoDB事務。這樣可以確保binlog反饋InnoDB表的確切數據等,并使從服務器保持與主服務器保持同步(不接收回滾的語句)。 Auto_increment_offset和Auto_increment_increment Auto_increment_increment和auto_increment_offset用于主-主服務器(master-to-master)復制,并可以用來控制AUTO_INCREMENT列的操作。兩個變量均可以設置為全局或局部變量,并且假定每個值都可以為1到65,535之間的整數值。將其中一個變量設置為0會使該變量為1。 這兩個變量影響AUTO_INCREMENT列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset確定AUTO_INCREMENT列值的起點。 如果auto_increment_offset的值大于auto_increment_increment的值,則auto_increment_offset的值被忽略。例如:表內已有一些數據,就會用現在已有的最大自增值做為初始值。
如何解決MySQL主從同步錯誤的SQL 解決: stop slave; #表示跳過一步錯誤,后面的數字可變 set global sql_slave_skip_counter =1; start slave; 之后再用mysql> show slave status/G 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes ok,現在主從同步狀態正常了。