2017-02-01 5 views
0

Ich versuche, einige innodb Einstellungen festlegen, wenn mysql auf der Kommandozeile starten:MySQL Unbekannt InnoDB-Optionen auf Befehlszeile

mysql -p*password* --skip-innodb_doublewrite 

mysql -p*password* --innodb_flush_log_at_trx_commit=2 

, die von dem MySQL docs möglich zu sein scheint:

Befehl -Line Format --innodb-doublewrite ... Diese Variable kann mit --skip-innodb_doublewrite

Befehlszeilenformat ausgeschaltet werden --innodb_flush_log_at_trx_commit[=#]

jedoch bei der Ausführung I erhalten:

mysql: unknown option '--skip-innodb_doublewrite' 

mysql: unknown variable 'innodb_flush_log_at_trx_commit=0' 

Was ist los? Habe ich die Dokumente komplett missinterpretiert?

Ich verwende MySQL 5.5.45

+1

Das sind Optionen für 'mysqld' Start nicht' mysql'. – Barmar

+0

@Barmar Nun, das würde es erklären! Setzen Sie das in eine Antwort und ich werde akzeptieren. – Arth

Antwort

1

Dies sind Server-Optionen, nicht Client-Optionen, so müssen sie auf der mysqld Befehlszeile angegeben werden. Wie jedoch in der Dokumentation steht:

Viele Systemvariablen können zur Laufzeit geändert werden (siehe Section 6.1.6.2, “Dynamic System Variables”).

Wenn Sie auf diese Seite gehen, die erste Zeile sagt:

Viele Serversystemvariablen sind dynamisch und können zur Laufzeit festgelegt werden SET GLOBAL oder SET SESSION verwenden.

Es gibt eine Tabelle, die alle dynamischen Variablen auflistet. innodb_doublewrite gehört nicht dazu, daher kann es nur beim Serverstart angegeben werden (entweder mit einem Befehlszeilenargument oder in der Konfigurationsdatei). Aber innodb_flush_log_at_trx_commit wird als globale Variable aufgeführt, so können Sie dies tun:

mysql -u root -p"password" -e "set global innodb_flush_log_at_trx_commit = 0"