Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung der Golang-Datenbank

Der Absturz wird also dadurch verursacht, dass der db-Zeiger null ist. Dies bedeutet, dass Code, der versucht, diese Verbindung in Zeile 40 zu verwenden, eine Panik auslöst.

rows, errrows := db.Query(...

Der db-Zeiger ist null, weil, wie Peter betonte, http.ListenAndServe blockiert, was nichts bedeutet nachdem es laufen wird.

Versuchen Sie, dieses Beispiel lokal auszuführen, um das Problem zu sehen:

package main

import (
    "net/http"
)

func Group(res http.ResponseWriter, req *http.Request) {
    println("group handler")
}

func main() {
    http.HandleFunc("/group/", Group)
    err := http.ListenAndServe(":9001", nil)
    if err != nil {
      panic(err)
    }
    println("Running code after ListenAndServe (only happens when server shuts down)")
}

Sie werden die Running-Code-Meldung nicht sehen.