MySQL Shell 的實例轉儲公用程式 util.dumpInstance() 和綱要轉儲公用程式 util.dumpSchemas() 支援將內部部署 MySQL 實例的所有綱要或選取的綱要匯出到 Oracle Cloud Infrastructure 物件儲存貯體或一組本機檔案中。表格轉儲公用程式 util.dumpTables() 支援對綱要中的選定表格或檢視執行相同的操作。然後,可以使用 util.loadDump() 公用程式,將匯出的項目匯入 HeatWave Service DB 系統或 MySQL Server 實例 (請參閱 第 11.6 節「轉儲載入公用程式」)。為了獲得最佳功能,請務必使用 MySQL Shell 轉儲和轉儲載入公用程式的最新版本。
MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式提供 Oracle Cloud Infrastructure 物件儲存串流、HeatWave Service 相容性檢查和修改、使用多個執行緒進行平行轉儲和檔案壓縮,這些功能是 mysqldump 所沒有的。轉儲期間會顯示進度資訊。您可以使用選擇的轉儲選項集執行試執行,以顯示有關將執行的動作、將轉儲的項目,以及 (針對實例轉儲公用程式和綱要轉儲公用程式) 當您使用這些選項實際執行公用程式時,需要修正哪些 HeatWave Service 相容性問題的資訊。
選擇轉儲檔案的目的地時,請注意,為了匯入 HeatWave Service DB 系統,您執行轉儲載入公用程式的 MySQL Shell 實例必須安裝在可以存取 HeatWave Service DB 系統的 Oracle Cloud Infrastructure Compute 實例上。如果您將實例、綱要或表格轉儲至物件儲存貯體,您可以從 Compute 實例存取物件儲存貯體。如果您在本機系統上建立轉儲檔案,您需要使用您選擇的複製公用程式,將它們傳輸到 Oracle Cloud Infrastructure Compute 實例,具體取決於您為 Compute 實例選擇的作業系統。
由 MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式建立的轉儲包含指定綱要結構的 DDL 檔案,以及包含資料的索引標籤分隔 .tsv 檔案。如果您希望將匯出的綱要設定為與使用匯出資料填入資料庫不同的練習,您也可以選擇僅產生 DDL 檔案或僅產生資料檔案。您可以選擇是否在轉儲期間鎖定實例以確保資料一致性。依預設,轉儲公用程式會將表格資料分成多個資料檔案,並壓縮檔案。
您可以使用公用程式的選項來包含或排除指定的綱要和表格、使用者及其角色和授與、事件、常式和觸發程序。如果您指定衝突的包含和排除選項,或命名未包含在轉儲中的物件,則會報告錯誤並且轉儲會停止,以便您可以更正選項。如果您需要轉儲 MySQL 實例中的大多數綱要,作為替代策略,您可以使用實例轉儲公用程式而不是綱要轉儲公用程式,並指定 excludeSchemas 選項來列出不轉儲的綱要。同樣地,如果您需要轉儲綱要中的大多數表格,您可以將綱要轉儲公用程式與 excludeTables 選項一起使用,而不是使用表格轉儲公用程式。
雖然包含 mysql.apply_status、mysql.general_log、mysql.schema 和 mysql.slow_log tables 的 DDL 陳述式,但這些表格的資料始終會從由 MySQL Shell 綱要轉儲公用程式建立的轉儲中排除。information_schema、mysql、ndbinfo、performance_schema 和 sys 綱要始終會從實例轉儲中排除。
依預設,轉儲輸出中所有時間戳記資料的時區都會標準化為 UTC,這有助於在具有不同時區的伺服器之間移動資料以及處理具有多個時區的資料。如果您願意,可以使用 tzUtc: false 選項來保留原始時間戳記。
MySQL Shell 轉儲載入公用程式 util.loadDump() 支援使用預先驗證的要求 (PAR) 從物件儲存貯體載入匯出的實例和綱要。如需使用 PAR 載入轉儲的相關資訊,請參閱 第 11.6 節「轉儲載入公用程式」。
MySQL Shell 的實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式可感知分割 (請參閱 MySQL 手冊中的 分割)。當要轉儲的表格已分割時,每個分割區都會被視為獨立的表格;如果表格有子分割區,則每個子分割區都會被視為獨立的表格。這也表示,當啟用分塊時,分割或子分割表格的每個分割區或子分割區都會獨立分塊。為分割表格建立的轉儲檔案的基本名稱使用 格式,其中 schema@table@partitionschema 和 table 分別是父綱要和表格的名稱,而 partition 是分割區或子分割區的 URL 編碼名稱。
為了管理 MySQL Shell 公用程式較早版本不支援的功能新增,util.dumpInstance()、util.dumpSchemas()、util.dumpTables() 和 util.loadDump() 會將轉儲建立中使用的功能清單寫入轉儲中繼資料檔案;針對每個此類功能,都會將一個元素新增至清單中。當轉儲載入公用程式讀取中繼資料檔案並發現列出不支援的功能時,它會報告錯誤;錯誤訊息包含支援該功能的 MySQL Shell 版本。
實例轉儲公用程式、綱要轉儲公用程式和表格轉儲公用程式僅支援 MySQL Server 版本的正式發行 (GA) 版本。
目的地 MySQL 實例 (將載入轉儲的位置) 需要 MySQL 5.7 或更新版本。
對於來源 MySQL 實例,在提供公用程式的所有 MySQL Shell 版本中,完全支援從 MySQL 5.7 或更新版本進行轉儲。
實例或綱要中的物件名稱必須採用
latin1或utf8字元集。僅針對使用
InnoDB儲存引擎的表格保證資料一致性。-
用來執行公用程式的使用者帳戶在所有涉及的綱要上必須具有的最低權限集如下:
EVENT、RELOAD、SELECT、SHOW VIEW和TRIGGER。如果將
consistent選項設定為true(預設值),則在LOCK TABLES權限可用時,可替代所有已傾印資料表上的RELOAD權限 (如果後者不可用)。如果使用者帳戶沒有
BACKUP_ADMIN權限,並且無法執行LOCK INSTANCE FOR BACKUP,公用程式會在傾印期間進行額外的一致性檢查。如果此檢查失敗,將會停止執行執行個體傾印,但結構描述傾印或資料表傾印會繼續執行,並傳回錯誤訊息以警告使用者一致性檢查失敗。如果將
consistent選項設定為false,則不需要BACKUP_ADMIN和RELOAD權限。如果傾印來自 MySQL 5.6 執行個體,且包含使用者帳戶 (只有使用執行個體傾印公用程式才可能),則也需要
SUPER權限。
用於執行公用程式的使用者帳戶需要
REPLICATION CLIENT權限,公用程式才能在傾印中包含二進位記錄檔名稱和位置。如果使用者 ID 沒有該權限,則會繼續執行傾印,但不包含二進位記錄資訊。在將傾印的資料載入到複本伺服器後,可以使用二進位記錄資訊,透過CHANGE REPLICATION SOURCE TO陳述式的ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS選項,使用非 GTID 來源伺服器設定複寫。用於將檔案傳輸到 Oracle Cloud Infrastructure Object Storage 儲存桶的上傳方法,其檔案大小限制為 1.2 TiB。
公用程式會將資料類型不適合以文字形式儲存 (例如
BLOB) 的資料行轉換為 Base64。因此,這些資料行的大小不得超過目標 MySQL 執行個體上設定之max_allowed_packet系統變數 (以位元組為單位) 值的約 0.74 倍。對於資料表傾印公用程式,匯出的檢視和觸發程序不得使用完整名稱來參考其他檢視或資料表。
資料表傾印公用程式不會傾印常式,因此在載入傾印的物件時,由傾印的物件 (例如,使用函式的檢視) 參考的任何常式都必須已經存在。
-
若要匯入 HeatWave Service 資料庫系統,請將
ocimds選項設定為true,以確保與 HeatWave Service 相容。重要事項移轉至 HeatWave Service 時,建議一律使用最新可用的 MySQL Shell 版本。
為了與 HeatWave Service 相容,所有資料表都必須使用
InnoDB儲存引擎。ocimds選項會檢查傾印中發現的任何例外狀況,而compatibility選項會變更傾印檔案,以將其他儲存引擎取代為InnoDB。對於執行個體傾印公用程式和結構描述傾印公用程式,為了與 HeatWave Service 相容,執行個體或結構描述中的所有資料表都必須位於 MySQL 資料目錄中,且必須使用預設的結構描述加密。
ocimds選項會變更傾印檔案以套用這些需求。-
HeatWave Service 使用
partial_revokes=ON,這表示結構描述上包含萬用字元 (例如_或%) 的資料庫層級使用者授與會回報為錯誤。您也可以使用相容性選項
ignore_wildcard_grants和strip_invalid_grants如需詳細資訊,請參閱 適用於 HeatWave Service 和 Oracle Cloud Infrastructure 的選項。
為了與 HeatWave Service 相容,許多其他與安全性相關的限制和需求適用於資料表空間和權限等項目。
ocimds選項會檢查在傾印期間發現的任何例外狀況,而compatibility選項會自動變更傾印檔案,以解決部分相容性問題。您可能需要 (或偏好) 手動進行一些變更。如需更多詳細資訊,請參閱compatibility選項的說明。對於使用群組複寫的 HeatWave Service 高可用性,每個資料表都需要主索引鍵。
ocimds選項會檢查並回報傾印中任何缺少主索引鍵的資料表的錯誤。compatibility選項可以設定為忽略缺少的主索引鍵 (如果您不需要這些索引鍵),或通知 MySQL Shell 的傾印載入公用程式在不存在主索引鍵時,於隱藏資料行中加入主索引鍵。如需詳細資訊,請參閱compatibility選項的說明。如果可以,請考慮在再次傾印資料表之前,先在來源伺服器上的資料表中建立主索引鍵,而不是在公用程式中管理此問題。如果針對 MySQL 5.7 執行任何傾印公用程式,並將
"ocimds": true,則會自動執行util.checkForServerUpgrade,除非透過skipUpgradeChecks停用這些檢查。會根據傾印中包含的物件類型執行升級前檢查。
執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式會使用 MySQL Shell 全域工作階段來取得要從中執行匯出的目標 MySQL 伺服器的連線詳細資料。您必須先開啟全域工作階段 (可以使用 X 通訊協定連線或傳統 MySQL 通訊協定連線),才能執行其中一個公用程式。公用程式會為每個執行緒開啟自己的工作階段,並從全域工作階段複製連線壓縮和 SSL 選項等選項,且不會再進一步使用全域工作階段。
在 MySQL Shell API 中,執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式是 util 全域物件的函數,並具有下列簽章
util.dumpInstance(outputUrl[, options])
util.dumpSchemas(schemas, outputUrl[, options])
util.dumpTables(schema, tables, outputUrl[, options])
options 是選項的字典,如果該字典是空的,則可以省略。本主題的其餘章節中列出了執行個體傾印公用程式、結構描述傾印公用程式和資料表傾印公用程式可用的選項。
對於結構描述傾印公用程式,schemas 會指定要從 MySQL 執行個體傾印的一或多個結構描述的清單。
對於資料表傾印公用程式,schema 會指定包含要傾印之項目的結構描述,而 tables 則是一個字串陣列,指定要傾印的資料表或檢視。資料表傾印包含在目標 MySQL 執行個體中設定指定結構描述所需的資訊,儘管可以使用傾印載入公用程式的 schema 選項將其載入到替代的目標結構描述中。
資料表傾印公用程式可用於從結構描述中選取個別資料表,例如,如果您想要在結構描述之間傳輸資料表。在 MySQL Shell 的 JavaScript 模式中的此範例中,會將 hr 結構描述中的 employees 和 salaries 資料表匯出到本機目錄 emp,公用程式會在目前的工作目錄中建立該目錄
shell-js> util.dumpTables("hr", [ "employees", "salaries" ], "emp")
若要傾印指定結構描述中的所有檢視和資料表,請使用 all 選項,並將 tables 參數設定為空陣列,如此範例所示
shell-js> util.dumpTables("hr", [], "emp", { "all": true })
如果您要傾印到本機檔案系統,outputUrl 是指定要放置傾印檔案的本機目錄路徑的字串。您可以指定絕對路徑或相對於目前工作目錄的路徑。您可以使用 file:// 結構描述作為本機目錄路徑的前置字元。在此範例中,會將連線的 MySQL 執行個體傾印到本機目錄,並在傾印檔案中進行一些修改,以確保與 HeatWave Service 相容。使用者會先執行試執行以檢查結構描述並檢視相容性問題,然後執行傾印並套用適當的相容性選項來移除問題
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})
Checking for compatibility with HeatWave Service 8.0.33
...
Compatibility issues with HeatWave Service 8.0.33 were found. Please use the
'compatibility' option to apply compatibility adaptations to the dumped DDL.
Util.dumpInstance: Compatibility issues were found (RuntimeError)
shell-js> util.dumpInstance("C:/Users/hanna/worlddump", {
> ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})
執行匯出之前,目標目錄必須是空的。如果目錄尚未在其父目錄中存在,則公用程式會建立該目錄。對於匯出到本機目錄,在傾印期間建立的目錄會使用存取權限 rwxr-x--- 來建立,而檔案則會使用存取權限 rw-r----- 來建立 (在支援這些權限的作業系統上)。檔案和目錄的擁有者是正在執行 MySQL Shell 的使用者帳戶。
如果您要傾印到 Oracle Cloud Infrastructure Object Storage 儲存桶,則 outputUrl 是將用於在儲存桶中作為傾印檔案前置字元的路徑,以模擬目錄結構。請使用 osBucketName 選項來提供 Object Storage 儲存桶的名稱,並使用 osNamespace 選項來識別儲存桶的命名空間。在此範例中,使用者會將連線 MySQL 執行個體中的 world 結構描述傾印到 Object Storage 儲存桶,並使用與先前範例相同的相容性修改
shell-js> util.dumpSchemas(["world"], "worlddump", {
> "osBucketName": "hanna-bucket", "osNamespace": "idx28w1ckztq",
> "ocimds": "true", "compatibility": ["strip_definers", "strip_restricted_grants"]})
在 Object Storage 儲存桶中,傾印檔案全都會顯示前置字元 worlddump,例如
worlddump/@.done.json
worlddump/@.json
worlddump/@.post.sql
worlddump/@.sql
worlddump/world.json
worlddump/world.sql
worlddump/world@city.json
worlddump/world@city.sql
worlddump/world@city@@0.tsv.zst
worlddump/world@city@@0.tsv.zst.idx
...
Object Storage 儲存桶的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中的儲存桶詳細資料頁面的 儲存桶資訊標籤中,也可以使用 Oracle Cloud Infrastructure 命令列介面取得。使用預設 Oracle Cloud Infrastructure CLI 組態檔案中的預設設定檔,或您使用 ociConfigFile 和 ociProfile 選項指定的替代詳細資料,與 Object Storage 儲存桶建立連線。如需設定 CLI 組態檔案的指示,請參閱 SDK 和 CLI 組態檔案。
-
dryRun:[ true | false ] 顯示使用指定的選項集會傾印哪些項目的相關資訊,以及 HeatWave Service 相容性檢查的結果 (如果指定
ocimds選項),但不會繼續進行傾印。設定此選項可讓您在開始傾印之前列出所有相容性問題。預設值為false。-
showProgress:[ true | false ] 顯示 (
true) 或隱藏 (false) 傾印的進度資訊。如果stdout是終端機 (tty),例如在 MySQL Shell 處於互動模式時,則預設值為true,否則為false。進度資訊包含要傾印的預估總列數、目前已傾印的列數、完成百分比,以及每秒的列數和位元組數輸送量。-
threads:int 要用來從 MySQL 執行個體傾印資料區塊的平行執行緒數目。每個執行緒都有自己的 MySQL 執行個體連線。預設值為 4。
-
maxRate:"string" 傾印期間每個執行緒的資料讀取輸送量上限 (以每秒位元組為單位)。可以使用單位後置字元
k表示千位元組、M表示百萬位元組,以及G表示十億位元組 (例如,設定100M會將輸送量限制為每個執行緒每秒 100 百萬位元組)。設定0(這是預設值),或將選項設定為空字串,表示未設定任何限制。-
defaultCharacterSet: "string" 在 MySQL Shell 開啟連線至伺服器以進行傾印時,所使用的字元集。預設值為
utf8mb4。系統變數character_set_client、character_set_connection和character_set_results的連線階段值會針對每個連線設定為此值。此字元集必須為character_set_client系統變數所允許,且為 MySQL 執行個體所支援。-
consistent: [ true | false ] -
啟用 (
true) 或停用 (false) 一致性資料傾印,方法是在傾印期間鎖定執行個體以進行備份。預設值為true。當設定為
true時,公用程式會使用FLUSH TABLES WITH READ LOCK陳述式設定全域讀取鎖定(如果用來執行公用程式的使用者 ID 具有RELOAD權限),或使用LOCK TABLES陳述式設定一系列資料表鎖定(如果使用者 ID 沒有RELOAD權限,但具有LOCK TABLES)。每個執行緒的交易都會使用陳述式SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ和START TRANSACTION WITH CONSISTENT SNAPSHOT來開始。當所有執行緒都開始交易時,執行個體會鎖定以進行備份(如 LOCK INSTANCE FOR BACKUP 和 UNLOCK INSTANCE 陳述式中所述),並釋放全域讀取鎖定。如果使用者帳戶沒有
BACKUP_ADMIN權限,並且無法執行LOCK INSTANCE FOR BACKUP,公用程式會在傾印期間進行額外的一致性檢查。如果此檢查失敗,將會停止執行執行個體傾印,但結構描述傾印或資料表傾印會繼續執行,並傳回錯誤訊息以警告使用者一致性檢查失敗。 -
skipConsistencyChecks: [ true | false ] -
啟用 (
true) 或停用 (false) 當consistent: true時執行的額外一致性檢查。預設值為false。如果
consistent: false,則會忽略此選項。 -
skipUpgradeChecks: [true | false] 預設值為
false。啟用可停用當ocimds: true時通常會預設執行的升級檢查。將不會檢查與 MySQL 版本升級相關的相容性問題。僅當您個別執行升級檢查器時,才使用此選項。
-
tzUtc: [ true | false ] 在傾印開始時包含一個陳述式,將時區設定為 UTC。傾印輸出中的所有時間戳記資料都會轉換為這個時區。預設值為
true,因此時間戳記資料預設會轉換。將時區設定為 UTC 有助於在具有不同時區的伺服器之間移動資料,或處理具有多個時區的一組資料。如果您偏好保留原始時間戳記,請將此選項設定為false。-
compression: "string;level=n" -
建立傾印檔案時要使用的壓縮類型和壓縮層級。以下壓縮選項可供使用
none:不套用壓縮。-
gzip:使用 gzip 壓縮程式庫。壓縮層級可以設定為 0 到 9。預設壓縮層級為 1。例如"compression": "gzip;level=4" -
zstd:預設值。使用 zstd 壓縮程式庫。壓縮層級可以設定為 1 到 22。預設壓縮層級為 1。例如"compression": "zstd;level=15"
-
checksum: [ true | false ] -
如果啟用,則會使用傾印產生一個中繼資料檔案
@.checksums.json。此檔案包含傾印的總和檢查碼資料,可在載入傾印時啟用資料驗證。請參閱載入控制的選項。如果
checksum: true,則適用下列條件如果
ddlOnly:false且chunking:true,則會為每個傾印的資料表和分割區區塊產生總和檢查碼。如果
ddlOnly:false且chunking:false,則會為每個傾印的資料表和資料表分割區產生總和檢查碼。如果
ddlOnly:true,則會為每個傾印的資料表和資料表分割區產生總和檢查碼。
-
chunking: [ true | false ] -
啟用 (
true) 或停用 (false) 資料表資料的區塊分割,這會將每個資料表的資料分割為多個檔案。預設值為true,因此預設會啟用區塊分割。使用bytesPerChunk來指定區塊大小。如果您將區塊分割選項設定為false,則不會進行區塊分割,而且公用程式會為每個資料表建立一個資料檔案。如果資料表沒有主索引鍵或唯一索引,則會根據資料表中的列數、平均列長度和
bytesPerChunk值來進行區塊分割。 -
bytesPerChunk: "string" 設定啟用區塊分割時要寫入每個資料檔案的大約位元組數。可以使用單位後綴
k代表 KB、M代表 MB 和G代表 GB。預設值為 64 MB。指定此選項會隱含地將chunking設定為true。公用程式的目標是在套用壓縮之前,將每個資料表的資料區塊分割為每個都包含此資料量的檔案。區塊大小是平均值,並根據資料表統計資料和說明計畫估計值來計算。-
dialect: [default|csv|csv-unix|tsv] -
指定匯出資料檔案格式的一組欄位和行處理選項。您可以使用選取的方言作為進一步自訂的基礎,方法是同時指定一或多個
linesTerminatedBy、fieldsTerminatedBy、fieldsEnclosedBy、fieldsOptionallyEnclosed和fieldsEscapedBy選項來變更設定。預設方言會產生一個與使用
SELECT...INTO OUTFILE陳述式以該陳述式的預設設定所建立的資料檔案相符的資料檔案。.txt是適合指派給這些輸出檔案的副檔名。其他方言可用於匯出 DOS 或 UNIX 系統的 CSV 檔案 (.csv) 和 TSV 檔案 (.tsv)。針對每個方言套用的設定如下
表 11.3 資料表匯出公用程式的方言設定
方言linesTerminatedByfieldsTerminatedByfieldsEnclosedByfieldsOptionallyEnclosedfieldsEscapedBy預設[LF]
[TAB]
[空白]
false\
csv[CR][LF]
,
''
true\
csv-unix[LF]
,
''
false\
tsv[CR][LF]
[TAB]
''
true\
注意方言的回車和換行值與作業系統無關。
如果您使用
linesTerminatedBy、fieldsTerminatedBy、fieldsEnclosedBy、fieldsOptionallyEnclosed和fieldsEscapedBy選項,根據您的命令解譯器的逸出慣例,如果您在選項值中使用反斜線字元 (\),則可能需要將其加倍。如同使用
SELECT...INTO OUTFILE陳述式的 MySQL 伺服器,MySQL Shell 不會驗證您指定的欄位和行處理選項。這些選項的不準確選取可能會導致資料部分或不正確地匯出。請務必在開始匯出之前驗證您的設定,並在之後驗證結果。
-
linesTerminatedBy: "characters" 公用程式用來終止匯出資料檔案中每一行的單一或多個字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為換行字元 (
\n)。此選項相當於SELECT...INTO OUTFILE陳述式的LINES TERMINATED BY選項。請注意,公用程式沒有提供SELECT...INTO OUTFILE陳述式的LINES STARTING BY選項的對等選項,該選項設定為空字串。-
fieldsTerminatedBy: "characters" 公用程式用來終止匯出資料檔案中每個欄位的單一或多個字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為 Tab 字元 (
\t)。此選項相當於SELECT...INTO OUTFILE陳述式的FIELDS TERMINATED BY選項。-
fieldsEnclosedBy: "character" 公用程式用來括住匯出資料檔案中每個欄位的單一字元(或空字串)。預設值與指定的方言相同,如果省略方言選項,則為空字串。此選項相當於
SELECT...INTO OUTFILE陳述式的FIELDS ENCLOSED BY選項。-
fieldsOptionallyEnclosed: [ true | false ] 是否要讓
fieldsEnclosedBy指定的字元括住匯出資料檔案中的所有欄位 (false),或僅當欄位具有字串資料類型(例如CHAR、BINARY、TEXT或ENUM)時才括住欄位 (true)。預設值與指定的方言相同,如果省略方言選項,則為false。此選項會讓fieldsEnclosedBy選項相當於SELECT...INTO OUTFILE陳述式的FIELDS OPTIONALLY ENCLOSED BY選項。-
fieldsEscapedBy: "character" 將在匯出資料檔案中開始逸出序列的字元。預設值與指定的方言相同,如果省略方言選項,則為反斜線 (\)。此選項相當於
SELECT...INTO OUTFILE陳述式的FIELDS ESCAPED BY選項。如果您將此選項設定為空字串,則不會逸出任何字元,這是不建議的做法,因為SELECT...INTO OUTFILE使用的特殊字元必須逸出。
-
where -
包含有效資料表識別碼(格式為
)和用來篩選要匯出之資料的有效 SQL 條件運算式的鍵值組。schemaName.tableName注意SQL 只有在執行時才會經過驗證。如果您要匯出許多資料表,則任何與 SQL 語法相關的問題都只會在程序的稍後階段才會看到。因此,建議您在長時間執行的匯出程序中使用 SQL 條件之前,先測試 SQL 條件。
在下列範例中,
where只會將actor_id的值大於 150 的sakila.actor和sakila.actor_info資料表的列匯出到名為out的本機資料夾util.dumpTables("sakila", ["actor","actor_info"], "out", {"where" : {"sakila.actor": "actor_id > 150", "sakila.actor_info": "actor_id > 150"}}) -
partitions: {schemaName.tableName: ["string","string",..]} -
有效的分割區名稱清單,會將匯出限制為指定的分割區。
例如,若要只從
schema.table資料表匯出名為p1和p2的分割區:partitions: {schema.table:["p1", "p2"]}。下列範例會從 table1 匯出分割區 p1 和 p2,並從 table2 匯出分割區 p2
util.dumpTables("schema", ["table","table2"], "out", {"partitions" : { "schema.table1": ["p1", "p2"],"schema.table2": ["p1"]}}) -
ddlOnly: [ true | false ] 將此選項設定為
true只會在傾印中包含已傾印項目的 DDL 檔案,而不會傾印資料。預設值為false。-
dataOnly: [ true | false ] 將此選項設定為
true只會在傾印中包含已傾印項目的資料檔案,而不會包含 DDL 檔案。預設值為false。-
users: [ true | false ] -
(僅限執行個體傾印公用程式) 在傾印中包含 (
true) 或排除 (false) 使用者及其角色和授權。預設值為true,因此預設會包含使用者。結構描述傾印公用程式和資料表傾印公用程式不會在傾印中包含使用者、角色和授權。您可以使用
excludeUsers或includeUsers選項來指定要從傾印檔案中排除或包含的個別使用者帳戶。這些選項也可以與 MySQL Shell 的傾印載入公用程式util.loadDump()搭配使用,以便在匯入時,根據目標 MySQL 執行個體的需求來排除或包含個別使用者帳戶。注意如果要從 MySQL 5.6 執行個體傾印使用者,執行複製的使用者必須具有 SUPER 權限。
-
excludeUsers:字串陣列 (僅限執行個體傾印公用程式) 從傾印檔案中排除指定的使用者帳戶。您可以使用它來排除不接受匯入 HeatWave Service DB 系統,或者已經存在或是不想在目標 MySQL 執行個體上的使用者帳戶。針對以使用者名稱和主機名稱定義的帳戶,請以
"'的格式指定每個使用者帳戶字串;針對僅以使用者名稱定義的帳戶,請以user_name'@'host_name'""'的格式指定。如果您未提供主機名稱,則會排除所有具有該使用者名稱的帳戶。user_name'"-
includeUsers:字串陣列 (僅限執行個體傾印公用程式) 只在傾印檔案中包含指定的使用者帳戶。指定每個使用者帳戶字串的方式與
excludeUsers選項相同。如果傾印中只需要少數幾個使用者帳戶,則此選項是excludeUsers的替代選項。您也可以同時指定這兩個選項,以包含某些帳戶並排除其他帳戶。-
excludeSchemas:字串陣列 (僅限執行個體傾印公用程式) 從傾印中排除指定的結構描述。請注意,
information_schema、mysql、ndbinfo、performance_schema和sys結構描述一律會從執行個體傾印中排除。-
includeSchemas:字串陣列 (僅限執行個體傾印公用程式) 只在傾印中包含指定的結構描述。您無法透過在此選項上命名
information_schema、mysql、ndbinfo、performance_schema或sys結構描述來包含它們。如果您想要傾印其中一個或多個結構描述,可以使用結構描述傾印公用程式util.dumpSchemas()來執行此操作。-
excludeTables:字串陣列 -
(僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的資料表。資料表名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。由
excludeTables選項命名的資料表在傾印中沒有 DDL 檔案或資料檔案。請注意,mysql.apply_status、mysql.general_log、mysql.schema和mysql.slow_log tables的資料一律會從結構描述傾印中排除,儘管它們的 DDL 陳述式會被包含,而且您無法透過在另一個選項或公用程式中命名該資料表來包含該資料。注意包含多位元組字元的結構描述和資料表名稱必須以反引號括住。
-
includeTables:字串陣列 -
(僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的資料表。資料表名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。
注意包含多位元組字元的結構描述和資料表名稱必須以反引號括住。
-
events: [ true | false ] (僅限執行個體傾印公用程式和結構描述傾印公用程式) 在傾印中包含 (
true) 或排除 (false) 每個結構描述的事件。預設值為true。-
excludeEvents:字串陣列 (僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的事件。事件的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。
-
includeEvents:字串陣列 (僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的事件。事件的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。
-
routines: [ true | false ] (僅限執行個體傾印公用程式和結構描述傾印公用程式) 在傾印中包含 (
true) 或排除 (false) 每個結構描述的函數和預存程序。預設值為true。請注意,即使routines設定為true,也不會包含使用者定義的函數。-
excludeRoutines:字串陣列 (僅限執行個體傾印公用程式和結構描述傾印公用程式) 從傾印中排除指定的函數和預存程序。常式的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。
-
includeRoutines:字串陣列 (僅限執行個體傾印公用程式和結構描述傾印公用程式) 只在傾印中包含指定的函數和預存程序。常式的名稱必須以有效的結構描述名稱來限定,並且在需要時使用反引號字元引起來。
-
all: [ true | false ] -
(僅限資料表傾印公用程式) 將此選項設定為
true會在傾印中包含指定結構描述中的所有檢視和資料表。預設值為false。當您使用此選項時,請將tables參數設定為空陣列,例如shell-js> util.dumpTables("hr", [], "emp", { "all": true }) -
triggers: [ true | false ] (所有傾印公用程式) 在傾印中包含 (
true) 或排除 (false) 每個資料表的觸發程序。預設值為true。-
excludeTriggers:字串陣列 (所有傾印公用程式) 從傾印中排除指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (
schema.table.trigger) 來限定,並且在需要時使用反引號字元引起來。您可以使用此選項 (schema.table) 來指定結構描述名稱和資料表名稱,以排除特定資料表的所有觸發程序。-
includeTriggers:字串陣列 (所有傾印公用程式) 只在傾印中包含指定的觸發程序。觸發程序的名稱必須以有效的結構描述名稱和資料表名稱 (
schema.table.trigger) 來限定,並且在需要時使用反引號字元引起來。您可以使用此選項 (schema.table) 來指定結構描述名稱和資料表名稱,以包含特定資料表的所有觸發程序。
-
osBucketName: "字串" 要將傾印寫入的 Oracle Cloud Infrastructure Object Storage 儲存貯體名稱。依預設,位於
~/.oci/config的 Oracle Cloud Infrastructure CLI 組態檔中的[DEFAULT]設定檔會用於建立與儲存貯體的連線。您可以使用ociConfigFile和ociProfile選項來取代要用於連線的替代設定檔。如需設定 CLI 組態檔的指示,請參閱 SDK 和 CLI 組態檔。-
osNamespace: "字串" Object Storage 儲存貯體 (由
osBucketName指定名稱) 所在的 Oracle Cloud Infrastructure 命名空間。Object Storage 儲存貯體的命名空間會顯示在 Oracle Cloud Infrastructure 主控台中儲存貯體詳細資料頁面的「儲存貯體資訊」索引標籤中,或者可以使用 Oracle Cloud Infrastructure 命令列介面取得。-
ociConfigFile: "字串" 包含要用於連線之設定檔的 Oracle Cloud Infrastructure CLI 組態檔,而不是預設位置
~/.oci/config中的組態檔。-
ociProfile: "字串" 要用於連線的 Oracle Cloud Infrastructure 設定檔的設定檔名稱,而不是用於連線的 Oracle Cloud Infrastructure CLI 組態檔中的
[DEFAULT]設定檔。-
ociAuth: "字串" -
連線至 Oracle Cloud Infrastructure 時要使用的驗證方法。此選項需要
osBucketName設定有效的值。可用的選項如下
-
api_key:OCI 連線會使用 OCI 組態檔。請參閱 第 4.7.1 節,「Oracle Cloud Infrastructure Object Storage」。如果
osBucketName已定義有效值,但未定義ociAuth,則會使用預設值api_key。 -
instance_principal:OCI 連線會使用執行個體主體驗證。請參閱 執行個體主體驗證。如果已定義
ociConfigFile或ociProfile,則無法使用此選項。 -
resource_principal:OCI 連線使用資源主體驗證。請參閱資源主體驗證。如果已定義
ociConfigFile或ociProfile,則無法使用此選項。 security_token:OCI 連線使用臨時產生的工作階段權杖。請參閱以工作階段權杖為基礎的驗證。
-
-
ocimds: [ true | false ] -
將此選項設定為
true可啟用檢查和修改,以確保與 HeatWave Service 相容。預設值為false。重要事項移轉至 HeatWave Service 時,建議一律使用最新可用的 MySQL Shell 版本。
當此選項設定為
true時,CREATE TABLE陳述式中的DATA DIRECTORY、INDEX DIRECTORY和ENCRYPTION選項會在 DDL 檔案中被註解掉,以確保所有資料表都位於 MySQL 資料目錄中,並使用預設的結構描述加密。系統會檢查CREATE TABLE陳述式中是否有InnoDB以外的任何儲存引擎、授予使用者或角色的不適合權限,以及其他相容性問題。如果找到任何不符合規範的 SQL 陳述式,則會引發例外狀況並停止傾印。使用dryRun選項可在開始傾印程序之前列出傾印中項目的所有問題。使用compatibility選項可自動修正傾印輸出中的問題。此選項預設設定為
false,只有在明確設定為true時才會啟用。注意如果針對 MySQL 5.7 執行任何傾印公用程式,並將
"ocimds": true設定為 true,則會自動執行util.checkForServerUpgrade。預先升級檢查會根據傾印中包含的物件類型執行。 -
targetVersion:n.n.n -
定義目標 MySQL 執行個體的版本,格式為 n.n.n。例如,8.1.0。如果未設定此值,則會使用 MySQL Shell 版本。
相容性檢查會根據
targetVersion的值進行調整。 -
compatibility:字串陣列 -
將指定的要求套用至傾印輸出中所有資料表與 HeatWave Service 的相容性,並在必要時變更傾印檔案。
可以將下列修改指定為字串陣列
-
force_innodb 變更
CREATE TABLE陳述式,對任何尚未使用InnoDB儲存引擎的資料表使用該引擎。-
skip_invalid_accounts 移除使用 HeatWave Service 不支援的外部驗證外掛程式建立的使用者帳戶。此選項也會移除未設定密碼的使用者帳戶,除非未設定密碼的帳戶識別為角色,在這種情況下,會使用
CREATE ROLE陳述式傾印該帳戶。-
strip_definers -
注意
如果目的地 HeatWave Service 執行個體為 8.2.0 或更高版本,則不需要此選項。
從 MySQL Server 8.2.0 開始,
SET_USER_ID已被取代,並將在未來版本中移除。SET_USER_ID由SET_ANY_DEFINER和ALLOW_NONEXISTENT_DEFINER取代。此變更會影響 MySQL Shell 處理 HeatWave Service (ocimds: true) 用途傾印的方式,因為管理員使用者具有SET_ANY_DEFINER權限,並且能夠執行帶有DEFINER子句的陳述式。這在先前版本中是不可能的。從檢視、常式、事件和觸發程式中移除
DEFINER子句,以便使用預設的定義者 (叫用結構描述的使用者) 建立這些物件,並將檢視和常式的SQL SECURITY子句變更為指定INVOKER而不是DEFINER。HeatWave Service 需要特殊權限才能建立具有非載入結構描述使用者以外定義者的這些物件。如果您的安全性模型要求檢視和常式具有比查詢或呼叫它們的帳戶更多的權限,您必須在載入結構描述之前手動修改該結構描述。 -
strip_restricted_grants 從
GRANT陳述式中移除 HeatWave Service 限制的特定權限,因此無法將這些權限授予使用者及其角色 (這會導致使用者建立失敗)。如果 Oracle Cloud Infrastructure Compute 執行個體上的管理使用者帳戶本身不具有相關權限,則此選項也會移除系統結構描述 (mysql和sys) 的REVOKE陳述式,因此無法移除它們。-
strip_tablespaces 從
CREATE TABLE陳述式中移除TABLESPACE子句,以便在預設表空間中建立所有資料表。HeatWave Service 對表空間有一些限制。-
ignore_missing_pks 讓執行個體、結構描述或資料表傾印公用程式在執行傾印時忽略任何遺失的主索引鍵,以便仍可在不因這項檢查而停止傾印的情況下使用
ocimds選項。使用此修改建立的傾印無法載入至 HeatWave Service 高可用性執行個體,因為 HeatWave Service 高可用性需要主索引鍵,而後者使用群組複寫。若要改為新增遺失的主索引鍵,請使用create_invisible_pks修改,或考慮在來源伺服器上的資料表中建立主索引鍵。-
ignore_wildcard_grants 如果啟用,則會忽略具有萬用字元的結構描述授與中的錯誤,這些錯誤在啟用
partial_revokes系統變數的系統中會有不同的解讀。-
strip_invalid_grants 如果啟用,則會去除在載入使用者時會失敗的授與陳述式。例如,參照不存在之特定常式的授與。
-
create_invisible_pks -
在傾印中繼資料中新增一個旗標,以通知 MySQL Shell 的傾印載入公用程式,為每個不包含主索引鍵的資料表新增隱形資料行中的主索引鍵。此修改可讓在某些資料表缺少主索引鍵的情況下,將傾印載入至 HeatWave Service 高可用性執行個體。HeatWave Service 高可用性需要主索引鍵,而後者使用群組複寫。
此修改不會變更傾印資料,因為資料表在由傾印載入公用程式處理之前不會包含隱形資料行。隱形資料行 (命名為「
my_row_id」) 對於使用上傳資料表的應用程式沒有影響。以這種方式新增主索引鍵,尚未啟用將修改後的資料表向高可用性執行個體進行輸入複寫,因為該功能目前需要來源伺服器和複本伺服器都存在主索引鍵。如果可能,請考慮在來源伺服器上的資料表中建立主索引鍵,然後再次傾印它們,而不是使用此修改。您可以使用隱形資料行來保存主索引鍵,而不會對應用程式產生任何影響。這是效能和可用性的最佳做法,並可協助傾印的資料庫與 HeatWave Service 無縫運作。
注意由於 MySQL 8.0.23 中隱藏資料行的限制,MySQL Shell 的傾印載入公用程式只能用於在目標 MySQL 執行個體版本 8.0.24 或更高版本上載入使用
create_invisible_pks選項建立的傾印。
-
-
force_non_standard_fks 在 MySQL 8.4.0 中,新增了
restrict_fk_on_non_standard_key,在啟用時禁止建立非標準外來索引鍵。也就是說,參照非唯一索引鍵或複合索引鍵之部分欄位的索引鍵。HeatWave Service DB 系統預設啟用此變數,這會導致具有此類資料表的傾印無法載入。此選項會停用非標準外來索引鍵的檢查,並將傾印載入程式設定為將restrict_fk_on_non_standard_key變數的工作階段值設定為 OFF。建立具有非標準索引鍵的外來索引鍵可能會導致複寫失敗。
MySQL Shell 支援將 MySQL 資料傾印到與 S3 相容的儲存貯體,例如 Amazon Web Services (AWS) S3。
MySQL Shell 支援在命令列選項、環境變數和設定檔中進行 AWS S3 設定。命令列選項會覆寫環境變數、設定檔和預設選項。
如需組態需求的相關資訊,請參閱第 4.7 節「雲端服務設定」。
-
s3BucketName: "字串" 要將傾印寫入的 S3 儲存貯體名稱。預設情況下,會使用位於
~/.aws/的config和credentials檔案的default設定檔來建立與 S3 儲存貯體的連線。您可以使用s3ConfigFile和s3CredentialsFile選項來取代連線的替代設定和認證。如需安裝和設定 AWS CLI 的說明,請參閱AWS CLI 入門。-
s3CredentialsFile: "字串" 包含使用者認證的認證檔案,用於連線,而不是預設位置
~/.aws/credentials中的檔案。一般而言,認證檔案包含用於連線的aws_access_key_id和aws_secret_access_key。-
s3ConfigFile: "字串" 包含用於連線設定檔的設定檔,而不是預設位置 (例如
~/.aws/config) 中的檔案。一般而言,設定檔包含用於連線的區域和輸出類型。-
s3Profile: "字串" 用於連線的 s3 CLI 設定檔的設定檔名稱,而不是
default設定檔。-
s3Region: "字串" 用於連線的區域名稱。
-
s3EndpointOverride: "字串" -
要使用的端點 URL,而不是預設 URL。
當連線至 Oracle Cloud Infrastructure S3 相容性 API 時,端點採用下列格式:
https://。將命名空間.compat.objectstorage.區域.oraclecloud.com命名空間取代為 Object Storage 命名空間,並將區域取代為您的區域識別碼。例如,美國東部 (阿什本) 區域的區域識別碼為us-ashburn-1。對於美國東部 (阿什本) 區域中名為 axaxnpcrorw5 的命名空間
https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com.
以下範例顯示將 MySQL 執行個體傾印到 S3 儲存貯體 Bucket001 中名為 test 的資料夾,其中包含一些相容性選項
util.dumpInstance("test",{s3bucketName: "Bucket001", threads: 4,
compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})
以下範例顯示使用設定檔 oci,將 MySQL 執行個體傾印到物件儲存儲存貯體 Bucket001 中名為 test 的前置詞,並使用 s3EndpointOverride 將連線導向至所需租用戶和區域的 OCI 端點,以及一些相容性選項
util.dumpInstance("test",{s3BucketName: "Bucket001",
s3EndpointOverride: "https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com",
s3Profile: "oci", threads: 4,
compatibility: ["strip_restricted_grants", "strip_definers", "ignore_missing_pks"]})
MySQL Shell 支援傾印至 Microsoft Azure Blob 儲存空間。
MySQL Shell 支援在命令列選項、環境變數和組態檔中設定 Microsoft Azure Blob 儲存空間。命令列選項會覆寫環境變數和組態檔。
如需組態需求以及組態類型優先順序的相關資訊,請參閱第 4.7 節,「雲端服務組態」。
-
azureContainerName: "字串" 必要。要將傾印寫入的 Azure 容器名稱。容器必須存在。
-
azureConfigFile: "字串" -
選用。包含儲存空間連線參數的組態檔,而不是預設位置(例如
~/.azure/config)中的組態檔。如果未定義此項,則會使用預設組態檔。azureContainerName必須定義,且不得為空。 -
azureStorageAccount: "字串" 選用。用於操作的 Azure 儲存帳戶名稱。
-
azureStorageSasToken: "字串" 選用。用於操作驗證的 Azure 共用存取簽章 (SAS) 權杖,而非金鑰。
在以下範例中,組態使用連線參數的組態字串,這表示傾印命令僅需要 azureContainerName。
範例 config 檔案
[cloud]
name = AzureCloud
[storage]
connection_string=alphanumericConnectionString
範例 dumpInstance 命令,會將執行個體的內容匯出至名為 prefix1 的資料夾,位於名為 mysqlshellazure 的容器中
util.dumpInstance("prefix1", {azureContainerName: "mysqlshellazure", threads: 4})
outputURL 也可以是儲存桶或前置詞預先驗證請求 (PAR)。這可讓您將資料直接傾印至 OCI 物件儲存空間儲存桶。
PAR 必須定義為啟用下列權限
允許物件讀取和寫入
啟用物件清單
如果 PAR 定義為 outputURL,則不支援下列選項,如果使用這些選項將會導致錯誤
osBucketNames3BucketNameazureContainerName
僅支援儲存桶和前置詞 PAR 作為 outputURL。無法使用物件 PAR。
如果 PAR 不受支援,或未定義正確的權限,則會傳回 OCI 錯誤。
如果目標儲存桶不是空的,則操作會失敗並傳回錯誤。如果具有定義前置詞的物件存在,則操作會失敗並傳回錯誤。
當您定義前置詞 par 時,產生的 PAR URL 不包含定義的前置詞。您必須手動將其新增至 URL。
儲存桶 PAR 範例
以下範例將執行個體傾印至定義的儲存桶 PAR
util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
以下範例將結構描述 sakila 傾印至定義的儲存桶 PAR
util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
以下範例將資料表 sakila.actor 傾印至定義的儲存桶 PAR
util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/")
前置詞 PAR 範例
當您定義前置詞 par 時,產生的 PAR URL 不包含定義的前置詞。您必須手動將其新增至 URL。
以下範例將執行個體傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix
util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
以下範例將結構描述 sakila 傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix
util.dumpSchemas(["sakila"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
以下範例將資料表 sakila.actor 傾印至定義的儲存桶 PAR 中,前置詞為 MyPrefix
util.dumpTables("sakila", ["actor"], "https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/")
範圍 52000-52999 中的錯誤編號是 MySQL Shell 的執行個體傾印公用程式 util.dumpInstance()、結構描述傾印公用程式 util.dumpSchemas() 和資料表傾印公用程式 util.dumpTables() 特有的。可能會傳回下列錯誤
-
錯誤編號:
52000;符號:SHERR_DUMP_LOCK_TABLES_MISSING_PRIVILEGES訊息:使用者 %s 缺少 %s 的下列權限:%s。
-
錯誤編號:
52001;符號:SHERR_DUMP_GLOBAL_READ_LOCK_FAILED訊息:無法取得全域讀取鎖定
-
錯誤編號:
52002;符號:SHERR_DUMP_LOCK_TABLES_FAILED訊息:無法鎖定資料表:%s。
-
錯誤編號:
52003;符號:SHERR_DUMP_CONSISTENCY_CHECK_FAILED訊息:一致性檢查失敗。
-
錯誤編號:
52004;符號:SHERR_DUMP_COMPATIBILITY_ISSUES_FOUND訊息:發現相容性問題
-
錯誤編號:
52005;符號:SHERR_DUMP_COMPATIBILITY_OPTIONS_FAILED訊息:無法套用部分相容性選項
-
錯誤編號:
52006;符號:SHERR_DUMP_WORKER_THREAD_FATAL_ERROR訊息:傾印期間發生嚴重錯誤
-
錯誤編號:
52007;符號:SHERR_DUMP_MISSING_GLOBAL_PRIVILEGES訊息:使用者 %s 缺少下列全域權限:%s。
-
錯誤編號:
52008;符號:SHERR_DUMP_MISSING_SCHEMA_PRIVILEGES訊息:使用者 %s 缺少結構描述 %s 的下列權限:%s。
-
錯誤編號:
52009;符號:SHERR_DUMP_MISSING_TABLE_PRIVILEGES訊息:使用者 %s 缺少資料表 %s 的下列權限:%s。
-
錯誤編號:
52010;符號:SHERR_DUMP_NO_SCHEMAS_SELECTED訊息:結構描述的篩選器會產生空的集合。
-
錯誤編號:
52011;符號:SHERR_DUMP_MANIFEST_PAR_CREATION_FAILED訊息:無法為物件 '%s' 建立 PAR:%s
-
錯誤編號:
52012;符號:SHERR_DUMP_DW_WRITE_FAILED訊息:無法將 %s 寫入檔案 %s
-
錯誤編號:
52013;符號:SHERR_DUMP_IC_FAILED_TO_FETCH_VERSION訊息:無法擷取伺服器版本。
-
錯誤編號:
52014;符號:SHERR_DUMP_SD_CHARSET_NOT_FOUND訊息:無法找到字元集:%s
-
錯誤編號:
52015;符號:SHERR_DUMP_SD_WRITE_FAILED訊息:寫入時發生 errno %d
-
錯誤編號:
52016;符號:SHERR_DUMP_SD_QUERY_FAILED訊息:無法執行 '%s':%s
-
錯誤編號:
52017;符號:SHERR_DUMP_SD_COLLATION_DATABASE_ERROR訊息:處理 select @@collation_database 時發生錯誤;結果
-
錯誤編號:
52018;符號:SHERR_DUMP_SD_CHARACTER_SET_RESULTS_ERROR訊息:無法將 character_set_results 設定為:%s
-
錯誤編號:
52019;符號:SHERR_DUMP_SD_CANNOT_CREATE_DELIMITER訊息:無法為事件建立分隔符號:%s
-
錯誤編號:
52020;符號:SHERR_DUMP_SD_INSUFFICIENT_PRIVILEGE訊息:%s 沒有足夠的權限來 %s!
-
錯誤編號:
52021;符號:SHERR_DUMP_SD_MISSING_TABLE訊息:information_schema 中不存在 %s
-
錯誤編號:
52022;符號:SHERR_DUMP_SD_SHOW_CREATE_TABLE_FAILED訊息:執行失敗:show create table %s,錯誤為:%s
-
錯誤編號:
52023;符號:SHERR_DUMP_SD_SHOW_CREATE_TABLE_EMPTY訊息:資料表: %s 的建立資料表為空
-
錯誤編號:
52024;符號:SHERR_DUMP_SD_SHOW_FIELDS_FAILED訊息:檢視表: %s 上 SHOW FIELDS FROM 失敗
-
錯誤編號:
52025;符號:SHERR_DUMP_SD_SHOW_KEYS_FAILED訊息:無法取得資料表 %s 的索引鍵:%s
-
錯誤編號:
52026;符號:SHERR_DUMP_SD_SHOW_CREATE_VIEW_FAILED訊息:失敗:SHOW CREATE TABLE %s
-
錯誤編號:
52027;符號:SHERR_DUMP_SD_SHOW_CREATE_VIEW_EMPTY訊息:沒有關於檢視表: %s 的資訊
-
錯誤編號:
52028;符號:SHERR_DUMP_SD_SCHEMA_DDL_ERROR訊息:傾印結構描述 '%s' 的 DDL 時發生錯誤:%s
-
錯誤編號:
52029;符號:SHERR_DUMP_SD_TABLE_DDL_ERROR訊息:傾印資料表 '%s'.'s' 的 DDL 時發生錯誤:%s
-
錯誤編號:
52030;符號:SHERR_DUMP_SD_VIEW_TEMPORARY_DDL_ERROR訊息:傾印檢視表 '%s'.'s' 的暫時性 DDL 時發生錯誤:%s
-
錯誤編號:
52031;符號:SHERR_DUMP_SD_VIEW_DDL_ERROR訊息:傾印檢視表 '%s'.'s' 的 DDL 時發生錯誤:%s
-
錯誤編號:
52032;符號:SHERR_DUMP_SD_TRIGGER_COUNT_ERROR訊息:無法檢查資料表的觸發程序計數:'%s'.'s'
-
錯誤編號:
52033;符號:SHERR_DUMP_SD_TRIGGER_DDL_ERROR訊息:傾印資料表 '%s'.'s' 的觸發程序時發生錯誤:%s
-
錯誤編號:
52034;符號:SHERR_DUMP_SD_EVENT_DDL_ERROR訊息:傾印結構描述 '%s' 的事件時發生錯誤:%s
-
錯誤編號:
52035;符號:SHERR_DUMP_SD_ROUTINE_DDL_ERROR訊息:傾印結構描述 '%s' 的常式時發生錯誤:%s
-
錯誤編號:
52036;符號:SHERR_DUMP_ACCOUNT_WITH_APOSTROPHE訊息:帳戶 %s 包含 ' 字元,這是不支援的
範圍 54000-54999 中的錯誤編號是 MySQL Shell 的傾印載入公用程式 util.loadDump(),或 MySQL Shell 的執行個體傾印公用程式 util.dumpInstance()、結構描述傾印公用程式 util.dumpSchemas() 和資料表傾印公用程式 util.dumpTables() 所遇到的連線和網路錯誤。在大多數情況下,錯誤碼與涉及的 HTTP 錯誤相符 – 例如,當找不到 URL 的目標時,會發生錯誤 54404 (HTTP 404 Not Found)。可能會傳回下列錯誤