GNU/Linux >> LINUX-Kenntnisse >  >> Linux

OpenStack Neutron db_sync Fehler – Kann keine NOT NULL-Spalte mit dem Standardwert NULL hinzufügen [Gelöst]

Wenn Sie mit einem Fehler stecken bleiben Kann keine NOT NULL-Spalte mit dem Standardwert NULL hinzufügen während Sie die Neutronendatenbank füllen oder synchronisieren, können Sie das Problem wie folgt beheben. Bevor wir die Lösung sehen, werfen Sie einen Blick auf die Momentaufnahme des Fehlers:

# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
 sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) Cannot add a NOT NULL column with default value NULL [SQL: u'ALTER TABLE address_scopes ADD COLUMN ip_version INTEGER NOT NULL']

Der Fehler ist seltsam, weil meine OpenStack-Installation eine MySQL-Datenbank verwendet, aber der Fehler sagt SQLite.

Lösung:

Da meine Installation die MySQL-Datenbank verwenden sollte, habe ich neutron.conf schnell überprüft Datei, um zu sehen, ob die Verbindungsvariable richtig gesetzt wurde. Überraschenderweise gab es eine zusätzliche Verbindungsvariable, die auf SQLite zeigte, und das war in meinem Fall der Übeltäter.

# vim /etc/neutron/neutron.conf
[database]
 connection = mysql+pymysql://neutron:osneutron@controller/neutron
 The SQLAlchemy connection string to use to connect to the database. (string
 # value)
 # Deprecated group/name - [DEFAULT]/sql_connection
 # Deprecated group/name - [DATABASE]/sql_connection
 # Deprecated group/name - [sql]/connection
 connection = sqlite:////var/lib/neutron/neutron.sqlite

Die Lösung bestand also darin, die Verbindungsvariable, die auf sqlite zeigt, auszukommentieren.

# connection = sqlite:////var/lib/neutron/neutron.sqlite

Das ist es! Wenn Sie wissen möchten, warum SQLite keine Spalte address_scopes hinzufügen konnte mit einer Einschränkung als NOT NULL auf eine vorhandene Tabelle, dann ist hier der Grund.

Gemäß der SQLite ALTER TABLE-Dokumentation muss die Spalte einen anderen Standardwert als NULL haben, wenn die Einschränkung NOT NULL angegeben ist.


Linux
  1. So beheben Sie den Konfigurationsfehler:Makroverzeichnis „m4“ kann nicht gefunden werden [Gelöst]

  2. XEN VM Console kann nicht geöffnet werden – Virt-Viewer-Fehler:Anzeige kann nicht geöffnet werden [Gelöst]

  3. ConfigParser-Installationsfehler – python setup.py egg_info fehlgeschlagen mit Fehlercode 1 [Gelöst]

  4. OpenStack-Fehler – Indexspaltengröße zu groß. Die maximale Spaltengröße beträgt 767 Bytes [Gelöst]

  5. OpenStack-Rechenfehler – Kein Rechenknoteneintrag für Host [Gelöst]

[Gelöst] Zugriff auf Speicherdatei nicht möglich, Berechtigung verweigert Fehler in KVM Libvirt

M2Crypto SSL Check Error:Peer-Zertifikat subjectAltName stimmt nicht überein [Gelöst]

Kann keine gültige Basis-URL finden:YumRepo-Fehler [Gelöst]

PPA-Fehler kann nicht hinzugefügt werden. Benutzer oder Team existiert nicht?

Behebung System wurde nicht mit systemd als init-Systemfehler gebootet

Verwendung von awk mit Spaltenwertbedingungen