GTID özelliği
MySQL 5.6 sürümüyle Global Transaction Identifier (GTID) özelliği tanıtıldı. Bu nedenle, MySQL 5.6 ve sonraki sürümlerdeki mysqldump yardımcı programı set-gtid-purged seçeneğini içerir.
|
|
|
|
|
|
|
|
|
|
ON:mysqldumpçıktısınaSET @@GLOBAL.GTID_PURGEDifadesini ekler.OFF:mysqldumpçıktısınaSET @@GLOBAL.GTID_PURGEDifadesini eklemez.AUTO: Varsayılan değerdir. Kaynak örnekte GTID etkinseSET @@GLOBAL.GTID_PURGEDifadesini ekler; aksi takdirde GTID bilgisi eklemez.
Bu nedenle, MySQL 5.6 veya sonraki bir sürümdeki mysqldump aracını kullanarak ApsaraDB RDS for MySQL 5.5 örneğinden veri dışa aktarırken set-gtid-purged seçeneğini OFF olarak ayarlamanız gerekir. Aksi takdirde aşağıdaki hatalardan biri oluşur:
Error: Server has GTIDs disabled.
or
mysqldump: Couldn’t execute ‘SELECT @@GTID_MODE’: Unknown system variable ‘GTID_MODE’ <1193>
Tablo düzeyinde kilit bekleme sürelerinden kaçınma
Varsayılan olarak mysqldump, lock-tables seçeneğini etkinleştirir. Bu seçenek, dışa aktarılan tablolar üzerinde tablo düzeyinde kilit uygular ve bu tablolar üzerindeki Data Manipulation Language (DML) işlemlerini engeller.
ApsaraDB RDS for MySQL örneklerinde varsayılan olarak desteklenen InnoDB ve TokuDB depolama altyapıları işlem (transaction) desteği sunar. Verileri dışa aktarmak için lock-all-tables veya lock-tables seçeneklerini kullanmak yerine single-transaction seçeneğini kullanmanızı öneririz.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dışa aktarma karakter kümesini ayarlama
Bir karakter kümesi belirtmezseniz mysqldump varsayılan olarak UTF8 kullanır.
|
|
|
|
|
|
|
|
|
|
Diğer dışa aktarma seçenekleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Desteklenmeyen seçenekler
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Desteklenmeyen seçenekler ve nedenleri
-
all-databases: Bu seçenek desteklenmez. ApsaraDB RDS for MySQL'deki standart kullanıcı hesaplarınınmysqlveritabanındaki bazı tablolar için izni yoktur. Bu seçeneğin kullanılması hata oluşmasına neden olur.Hata mesajı
mysqldump: Couldn’t execute ‘show create table slow_log‘: SHOW command denied to user ‘xxx’@’xx.xx.xx.xx’ for table ‘slow_log’ (1142) -
flush-logs: Bu seçenek desteklenmez. ApsaraDB RDS for MySQL'deki standart kullanıcı hesaplarındaRELOADayrıcalığı bulunmadığındanflush logs;komutunu çalıştıramazlar.Hata mesajı
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) flush-privileges: ApsaraDB RDS for MySQL,mysqlveritabanının dışa aktarılmasını desteklemediğinden bu seçeneğe gerek yoktur.-
lock-all-tables: Bu seçenek desteklenmez. ApsaraDB RDS for MySQL'deki standart kullanıcı hesaplarındaRELOADayrıcalığı bulunmaz.Hata mesajı
mysqldump: Couldn’t execute ‘FLUSH TABLES’: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation (1227) -
tab=dir_name: Bu seçenek,mysqldump'un ApsaraDB RDS for MySQL örneğini barındıran fiziksel makinede çalıştırılmasını gerektirdiğinden desteklenmez. Ancak,CREATE TABLEifadelerini içeren dosyalar oluşturmak için bu seçeneğino-dataseçeneğiyle birlikte kullanabilirsiniz.# Use this option with the no-data option to obtain the tab_name.sql file, which contains the CREATE TABLE statement for each table in the test database. mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp —no-data test # Error message returned when you export data without using the --no-data option: mysqldump —no-defaults -uuser_name -ppass_word -hxxx.mysql.rds.aliyuncs.com -P3306 —set-gtid-purged=off —single-transaction —tab=/tmp test mysqldump: Got error: 1045: Access denied for user ‘xxx’@’%’ (using password: YES) when executing ‘SELECT INTO OUTFILE’