本文目錄一覽:
- 1、什麼是雙機熱備
- 2、linux下用mysql-5.5.17如何實現雙機熱備
- 3、mysql keepalive+ 雙主多從是怎麼做的
- 4、mysql如何實現兩個數據庫數據結構實時同步?
- 5、查看mysql是否為雙機
什麼是雙機熱備
雙機熱備是應用於服務器的一種解決方案,其構造思想是主機和從機通過TCP/IP網絡連接,正常情況下主機處於工作狀態,從機處於監視狀態,一旦從機發現主機異常,從機將會在很短的時間之內代替主機,完全實現主機的功能。
雙機熱備就是對於重要的服務,使用兩台服務器,互相備份,共同執行同一服務。當一台服務器出現故障時,由另一台服務器承擔服務任務,從而在不需要人工干預的情況下,自動保證系統能持續提供服務。雙機熱備由備用的服務器解決了在主服務器故障時服務不中斷的問題。
擴展資料:
雙機熱備原理:
雙機熱備主要是實時數據、報警信息和變量歷史記錄的熱備。主從機都正常工作時,主機從設備採集數據,併產生報警和事件信息。從機通過網絡從主機獲取實時數據和報警信息,而不會從設備讀取或自己產生報警信息,主從機都各自記錄變量歷史數據。
同時,從機通過網絡監聽主機,從機與主機之間的監聽採取請求與應答的方式,從機以一定的時間間隔(冗餘機心跳檢測時間)向主機發出請求,主機應答表示工作正常,主機如果沒有作出應答,從機將切斷與主機的網絡數據傳輸,轉入活動狀態,改由下位設備獲取數據,併產生報警和事件信息。此後,從機還會定時監聽主機狀態,一旦主機恢復,就切換到熱備狀態,通過這種方式實現了熱備。
參考資料來源:百度百科-服務器
參考資料來源:百度百科-雙機熱備
linux下用mysql-5.5.17如何實現雙機熱備
雙機熱備說明現成資料很多;我簡單說下步驟:
主機為A,從機為B
A的操作,
用root賬戶登錄,mysql -u root -p密碼
create database wangxh; 創建同步數據庫
grant all privileges on wangxh.* to ‘tom’@’B的ip’ identified by ‘密碼’; //添加用於B機同步的賬號tom
grant replication slave on *.* to ‘tom’@’B的ip’; //這個權限需要額外加
flush privileges; 刷新權限表,不然tom用戶的權限無效
關閉mysql服務
編輯my.cnf,在[mysqld]下加上
server-id=1,//主機id,可以任意數字,一般都為1
log-bin=mysql-bin.index //生成的bin-log文件名,可以在mysql數據文件夾下找到
binlog_format=row //默認是STATEMENT,建議用row
binlog-do-db=wangxh –允許被複制的庫名,可以設置多個,用「,」分開
B的操作,
用root賬戶登錄,mysql -u root -p密碼
create database wangxh; 創建同步數據庫
編輯my.cnf,在[mysqld]下加上
server-id=2 //只要不和A的server-id重複即可
master-host=A的ip
master-user=tom
master-password=tom的密碼
replicate-do-db=back;複製的數據庫;
最後保存文件,然後重啟AB機器的mysql
登錄B的mysql執行,start slave
查看slave狀態,
show slave status;
mysql keepalive+ 雙主多從是怎麼做的
我們通常說的雙機熱備是指兩台機器都在運行,但並不是兩台機器都同時在提供服務。當提供服務的一台出現故障的時候,另外一台會馬上自動接管並且提供服務,而且切換的時間非常短。MySQL雙主複製,即互為Master-Slave(只有一個Master提供寫操作),可以實現數據庫服務器的熱備,但是一個Master宕機後不能實現動態切換。使用Keepalived,可以通過虛擬IP,實現雙主對外的統一接口以及自動檢查、失敗切換機制,從而實現MySQL數據庫的高可用方案。之前梳理了Mysql主從/主主同步,下面說下Mysql+keeoalived雙主熱備高可用方案的實施。
Keepalived看名字就知道,保持存活,在網絡裏面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導
整個系統架構的不可用)的發生,那說到keepalived不得不說的一個協議不是VRRP協議,可以說這個協議就是keepalived實現的基礎。
1)Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虛擬路由冗餘協議。在VRRP中有兩組重要的概念:VRRP路由器和虛擬路由器,主控路由器和備份路由器。
2)VRRP路由器是指運行VRRP的路由器,是物理實體,虛擬路由器是指VRRP協議創建的,是邏輯概念。一組VRRP路由器協同工作,共同構成一台虛擬路由器。
Vrrp中存在着一種選舉機制,用以選出提供服務的路由即主控路由,其他的則成了備份路由。當主控路由失效後,備份路由中會重新選舉出一個主控路由,來繼
續工作,來保障不間斷服務。
mysql如何實現兩個數據庫數據結構實時同步?
實現兩個Mysql數據庫之間同步同步原理:
MySQL 為了實現replication 必須打開bin-log 項,也是打開二進制的MySQL 日誌記錄選項。MySQL 的bin log 二
進制日誌,可以記錄所有影響到數據庫表中存儲記錄內容的sql 操作,如insert / update / delete 操作,而不記錄
select 這樣的操作。因此,我們可以通過二進制日誌把某一時間段內丟失的數據可以恢復到數據庫中(如果二進制日
志中記錄的日誌項,包涵數據庫表中所有數據,那麼, 就可以恢複本地數據庫的全部數據了)。 而這個二進制日誌,
如果用作遠程數據庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設
置bin-log = 這個選項的原因。
在同步過程中,最重要的同步參照物,就是同步使用那一個二進制日誌文件,從那一條記錄開始同步。下面就介紹
下怎樣實現兩個Mysql數據庫之間的主從同步。
一、 概述
MySQL從3.23.15版本以後提供數據庫複製(replication)功能,利用該功能可以實現兩個數據庫同步、主從模式、
互相備份模式的功能。本文檔主要闡述了如何在linux系統中利用mysql的replication進行雙機熱備的配置。
二、 環境
操作系統:Linux 2.6.23.1-42.fc8 # SMP(不安裝XEN)
Mysql版本:5.0.45-4.fc8
設備環境:PC(或者虛擬機)兩台
三、 配置
數據庫同步複製功能的設置都在MySQL的配置文件中體現,MySQL的配置文件(一般是my.cnf):在本環境下
為/etc/my.cnf。
3.1 設置環境:
IP的設置:
A主機 IP:10.10.0.119
Mask:255.255.0.0
B主機 IP:10.10.8.112
Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態
。如果防火牆狀態為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命
令來禁用或定製。
最終以兩台主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式
3.2.1 配置A 為master
1、增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;
GRANTREPLICATION SLAVE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;
賦予10.10.8.112也就是Slave機器有File權限,只賦予Slave機器有File權限還不行,還要給它REPLICATION SLAVE的權
限才可以。
2、增加一個數據庫作為同步數據庫:
create databbse test;
3、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
4、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日誌的數據庫
5、重起數據庫服務:
service mysqld restart
查看server-id:
show variable like 『server_id』;
實例:
mysql show variables like ‘server_id’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 1 |
+—————+——-+
1 row in set (0.00 sec)
6、用show master status/G命令看日誌情況。
正常為:
mysql show master status/G
*************************** 1. row ***************************
File: mysqld-bin.000002
positiion: 198
Binlog_Do_DB: test,test
Binlog_Ignore_DB:
1 row in set (0.08 sec)
3.2.2 配置B 為slave
1、增加一個數據庫作為同步數據庫:
create databbse test;
2、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
3、修改配置文件:
修改B的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id=2
master-host=10.10. 0.119
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 #預設重試間隔60秒
replicate-do-db=test #告訴slave只做backup數據庫的更新
5、重起數據庫服務:
service mysqld restart
查看server-id:
show variables like 『server_id』;
實例:
mysql show variables like ‘server_id’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| server_id | 2 |
+—————+——-+
1 row in set (0.00 sec)
6、用show slave status/G命令看日誌情況。
正常為:
mysql show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.0.119
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,test
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: 98
Relay_Log_Space: 236
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
1 row in set (0.01 sec)
3.2.3 驗證配置
分別使用insert, delete , update在A主機進行增刪改查數據庫;查看B主機的數據庫是否與A主機一致;若一致,則配
置成功。
3.3雙機互備模式
如果在A主機加入slave設置,在B主機加入master設置,則可以做B-A的同步。
1、在A主機的配置文件中 mysqld配置項加入以下設置:
master-host=10.10.8.112
master-user=backup
master-password=1234
replicate-do-db=test
master-connect-retry=10
2、在B的配置文件中 mysqld配置項加入以下設置:
log-bin
binlog-do-db=test
注意:當有錯誤產生時,*.err日誌文件同步的線程退出,當糾正錯誤後,要讓同步機制進行工作,運行slave
start。
重起A、B機器,則可以實現雙向的熱備份。
總之,成功完成以上配置後,在主服務器A的test庫里添加數據或刪除數據,在從服務器B的test庫里馬上也能
看到相應的變更。兩台服務器的同步操作可以說是瞬間完成的。
查看mysql是否為雙機
mysql雙機熱備實現原理分析,在本文經過深思熟慮和多次用不同的方式實測試後。最後在這篇文章中,用一個小例子來完成mysql雙機熱備的實現。
Mysql數據庫沒有增量備份的機制,當數據量太大的時候備份是一個很大的問題。還好mysql數據庫提供了一種主從備份的機制,其實就是把主數據庫的所有的數據同時寫到備份的數據庫中。實現mysql數據庫的熱備份。
要想實現雙機的熱備,首先要了解主從數據庫服務器的版本的需求。要實現熱備mysql的版本都高於3.2。還有一個基本的原則就是作為從數據庫的數據版本可以高於主服務器數據庫的版本,但是不可以低於主服務器的數據庫版本。
當然要實現mysql雙機熱備,除了mysql本身自帶的REPLICATION功能可以實現外,也可以用Heartbeat這個開源軟件來實現。不過本文主要還是講如何用mysql自帶的REPLICATION來實現mysql雙機熱備的功能。
1. 準備服務器
由於Mysql不同版本之間的(二進制日誌)binlog格式可能會不太一樣,因此最好的搭配組合是主(Master)服務器的Mysql版本和從(Slave)服務器版本相同或者更低,主服務器的版本肯定不能高於從服務器版本。
本次我用於測試的兩台服務器版本都是Mysql-5.5.17。
2. Mysql 建立主-從服務器雙機熱備配置步驟
2.1環境描述
A服務器(主服務器Master):59.151.15.36
B服務器(從服務器Slave):218.206.70.146
主從服務器的Mysql版本皆為5.5.17
Linux環境下
將主服務器需要同步的數據庫內容進行備份一份,上傳到從服務器上,保證始初時兩服務器中數據庫內容一致。
不過這裡說明下,由於我是利用Mysql在安裝後就有的數據庫test進行測試的,所以兩台服務器裏面是沒有建立表的,只不分別在test裏面建立了同樣的一張空表tb_mobile;
Sql語句如下:
mysql create table tb_mobile( mobile VARCHAR(20) comment’手機號碼’, time timestamp DEFAULT now() comment’時間’ );
2.2 主服務器Master配置
2.2.1 創建同步用戶
進入mysql操作界面,在主服務器上為從服務器建立一個連接帳戶,該帳戶必須授予REPLICATION SLAVE權限。因為從mysql版本3.2以後就可以通過REPLICATION對其進行雙機熱備的功能操作。
操作指令如下:
mysql grant replication slave on *.* to ‘replicate’@’218.206.70.146’ identified by ‘123456’;
mysql flush privileges;
創建好同步連接帳戶後,我們可以通過在從服務器(Slave)上用replicat帳戶對主服務器(Master)數據庫進行訪問下,看下是否能連接成功。
在從服務器(Slave)上輸入如下指令:
[root@YD146 ~]# mysql -h59.151.15.36 -ureplicate -p123456
如果出現下面的結果,則表示能登錄成功,說明可以對這兩台服務器進行雙機熱備進行操作。
2.2.2 修改mysql配置文件
如果上面的準備工作做好,那邊我們就可以進行對mysql配置文件進行修改了,首先找到mysql配置所有在目錄,一般在安裝好mysql服務後,都會將配置文件複製一一份出來放到/ect目錄下面,並且配置文件命名為:my.cnf。即配置文件準確目錄為/etc/my.cnf
(Linux下用rpm包安裝的MySQL是不會安裝/etc/my.cnf文件的,
至於為什麼沒有這個文件而MySQL卻也能正常啟動和作用,在點有兩個說法,
第一種說法,my.cnf只是MySQL啟動時的一個參數文件,可以沒有它,這時MySQL會用內置的默認參數啟動,
第二種說法,MySQL在啟動時自動使用/usr/share/mysql目錄下的my-medium.cnf文件,這種說法僅限於rpm包安裝的MySQL,
解決方法,只需要複製一個/usr/share/mysql目錄下的my-medium.cnf文件到/etc目錄,並改名為my.cnf即可。)
找到配置文件my.cnf打開後,在[mysqld]下修改即可:
[mysqld]
server-id = 1
log-bin=mysql-bin //其中這兩行是本來就有的,可以不用動,添加下面兩行即可
binlog-do-db = test
binlog-ignore-db = mysql
2.2.3 重啟mysql服務
修改完配置文件後,保存後,重啟一下mysql服務,如果成功則沒問題。
2.2.4 查看主服務器狀態
進入mysql服務後,可通過指令查看Master狀態,輸入如下指令:
注意看裏面的參數,特別前面兩個File和Position,在從服務器(Slave)配置主從關係會有用到的。
註:這裡使用了鎖表,目的是為了產生環境中不讓進新的數據,好讓從服務器定位同步位置,初次同步完成後,記得解鎖。
2.3 從服務器Slave配置
2.3.1修改配置文件
因為這裏面是以主-從方式實現mysql雙機熱備的,所以在從服務器就不用在建立同步帳戶了,直接打開配置文件my.cnf進行修改即可,道理還是同修改主服務器上的一樣,只不過需要修改的參數不一樣而已。如下:
[mysqld]
server-id = 2
log-bin=mysql-bin
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema
2.3.2重啟mysql服務
修改完配置文件後,保存後,重啟一下mysql服務,如果成功則沒問題。
2.3.3用change mster 語句指定同步位置
這步是最關鍵的一步了,在進入mysql操作界面後,輸入如下指令:
mysqlstop slave; //先停步slave服務線程,這個是很重要的,如果不這樣做會造成以下操作不成功。
mysqlchange master to
master_host=’59.151.15.36′,master_user=’replicate’,master_password=’123456′,
master_log_file=’ mysql-bin.000016 ‘,master_log_pos=107;
註:master_log_file, master_log_pos由主服務器(Master)查出的狀態值中確定。也就是剛剛叫注意的。master_log_file對應File, master_log_pos對應Position。Mysql 5.x以上版本已經不支持在配置文件中指定主服務器相關選項。
遇到的問題,如果按上面步驟之後還出現如下情況:
則要重新設置slave。指令如下
mysqlstop slave;
mysqlreset slave;
之後停止slave線程重新開始。成功後,則可以開啟slave線程了。
mysqlstart slave;
2.3.4查看從服務器(Slave)狀態
用如下指令進行查看
mysql show slave status\G;
查看下面兩項值均為Yes,即表示設置從服務器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
2.4 測試同步
之前開始已經說過了在數據庫test只有一個表tb_mobile沒有數據,我們可以先查看下兩服務器的數據庫是否有數據:
Master:59.151.15.36
Slave:218.206.70.146
好了,現在可以在Master服務器中插入數據看下是否能同步。
Master:59.151.15.36
Slave:218.206.70.146
可以從上面兩個截圖上看出,在Master服務器上進行插入的數據在Slave服務器可以查到,這就表示雙機熱備配置成功了。
3. Mysql 建立主-主服務器雙機熱備配置步驟
服務器還是用回現在這兩台服務器
3.1創建同步用戶
同時在主從服務器建立一個連接帳戶,該帳戶必須授予REPLIATION SLAVE權限。這裡因為服務器A和服務器B互為主從,所以都要分別建立一個同步用戶。
服務器A:
mysql grant replication slave on *.* to ‘replicate’@’218.206.70.146’ identified by ‘123456’;
mysql flush privileges;
服務器B:
mysql grant replication slave on *.* to ‘replicate’@’59.151.15.36’ identified by ‘123456’;
mysql flush privileges;
3.2修改配置文件my.cnf
服務器A
[mysqld]
server-id = 1
log-bin=mysql-bin
binlog-do-db = test
binlog-ignore-db = mysql
#主-主形式需要多添加的部分
log-slave-updates
sync_binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
replicate-do-db = test
replicate-ignore-db = mysql,information_schema
服務器B:
[mysqld]
server-id = 2
log-bin=mysql-bin
master-slave need
replicate-do-db = test
replicate-ignore-db = mysql,information_schema,performance_schema
#主-主形式需要多添加的部分
binlog-do-db = test
binlog-ignore-db = mysql
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
3.3分別重啟A服務器和B服務器上的mysql服務
重啟服務器方式和上面的一樣,這裡就不做講解了。
3.4分別查A服務器和B服務器作為主服務器的狀態
服務器A:
服務器B:
3.5分別在A服務器和B服務器上用change master to 指定同步位置
服務器A:
mysqlchange master to
master_host=’218.206.70.146′,master_user=’replicate’,master_password=’123456′,
master_log_file=’ mysql-bin.000011 ‘,master_log_pos=497;
服務器B:
mysqlchange master to
master_host=’59.151.15.36′,master_user=’replicate’,master_password=’123456′,
master_log_file=’ mysql-bin.000016 ‘,master_log_pos=107;
3.6 分別在A和B服務器上重啟從服務線程
mysqlstart slave;
3.7 分別在A和B服務器上查看從服務器狀態
mysqlshow slave status\G;
查看下面兩項值均為Yes,即表示設置從服務器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3.8 測試主-主同步例子
測試服務器A:
在服務器A上插入一條語句如下圖所示:
之後在服務器B上查看是否同步如下圖所示:
測試服務器B:
在服務器B上插入一條語句如下圖所示:
然後在從服務器A上查看是否有同步數據如下圖所示:
最後從結果可以看出主-主形式的雙機熱備是能成功實現的。
4. 配置參數說明
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來定義錯誤號,如果複製過程中遇到的錯誤是定義的錯誤號,便可以路過。如果從庫是用來做備份,設置這個參數會存在數據不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。
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的值被忽略。例如:表內已有一些數據,就會用現在已有的最大自增值做為初始值。
原創文章,作者:OSVV,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/150065.html