Mysql
 sql >> Database >  >> RDS >> Mysql

indirizzo di memoria non valido o database golang di dereference puntatore nullo

Quindi l'arresto è causato dal fatto che il puntatore db è nullo. Ciò significa che il codice che tenta di utilizzare quella connessione sulla riga 40 provoca il panico.

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

Il puntatore db è nullo perché, come ha sottolineato Peter, http.ListenAndServe sta bloccando, il che significa niente dopo che verrà eseguito.

Prova a eseguire questo esempio localmente per vedere il problema:

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)")
}

Non vedrai il messaggio Codice in esecuzione.