Rumah > pembangunan bahagian belakang > Golang > Ralat menyambung ke rethinkDB daripada golang

Ralat menyambung ke rethinkDB daripada golang

WBOY
Lepaskan: 2024-02-12 10:45:08
ke hadapan
574 orang telah melayarinya

从 golang 连接到 rethinkDB 时出错

editor php Baicao menghadapi masalah semasa menggunakan golang untuk menyambung ke rethinkDB. Mesej ralat bahawa dia tidak dapat menyambung ke pelayan rethinkDB mengelirukan dia. Sebagai tindak balas kepada masalah ini, dia menjalankan beberapa siri penyelesaian masalah dan penyahpepijatan, dan akhirnya menemui penyelesaian. Dalam artikel ini, kami akan membincangkan kemungkinan masalah dan penyelesaian apabila menyambung ke rethinkDB daripada golang.

Kandungan soalan

Saya menggunakan rethinkdb untuk menjalankan bekas docker dan kemudian menjalankan go file untuk menyambung ke pangkalan data, tetapi ralat berlaku semasa menyambung.

Salam semua. Saya memerlukan bantuan dengan rethinkdb, saya menjalankan bekas buruh pelabuhan:

docker run --name rth -p 8100:8080 -d rethinkdb
Salin selepas log masuk

Kemudian lawati http://localhost:8100 dan terdapat halaman utama rethinkdb, jadi everythink baik-baik saja. Tetapi apabila saya cuba menyambung ke pangkalan data dari golang, saya mendapat beberapa ralat:

package main

import (  
    r "gopkg.in/rethinkdb/rethinkdb-go.v6"
    "log"
    "fmt"
)

func main() {
    _, err := r.connect(r.connectopts{
        address: "localhost:28015",
        database: "test",
    })
    if err != nil {
        fmt.println(err)
        log.fatal("could not connect")
    }
}
Salin selepas log masuk

Saya mendapat ralat ini selepas berlari go run main.go:

rethinkdb: dial tcp 127.0.0.1:28015: connect: connection refused
2023/05/18 01:38:39 could not connect
exit status 1
Salin selepas log masuk

Terima kasih Sebab ini berlaku ialah port tidak betul (28015), tetapi jika saya menukarnya, kecuali port = 8100, saya mendapat masalah yang sama. Jika saya memasukkan 8100 dan bukannya 28015 dan mendapat ralat ini:

rethinkdb: Unexpected EOF: HTTP/ 400 Bad Request

2023/05/18 01:38:52 Could not connect
exit status 1
Salin selepas log masuk

Mungkin ada yang tahu cara menyelesaikan masalah ini)

Penyelesaian

-p 8100:8080 将容器中的端口 8080 映射到主机上的端口 8100 。您没有映射任何其他端口,因此,当您尝试访问 8100 以外的任何端口(例如 127.0.0.1:28015) apabila permintaan anda tidak sampai ke bekas. Sesuatu yang lain pada hos mungkin sedang mendengar pada port itu, atau mungkin tiada apa-apa yang mendengar.

Anda menyebut bahawa anda mempunyai akses kepada 上的管理界面http://localhost:8100; jika anda menyemak log, anda akan melihat sesuatu seperti:

listening for administrative http connections on port 8080
listening for client driver connections on port 28015
Salin selepas log masuk

Jadi pelayan sedang mendengar sambungan pada berbilang port. port 8080 (映射到 8100)是管理 http 接口,28015 用于驱动程序连接(这在 文档)。您的代码正在尝试连接到端口 28015 (yang betul), tetapi anda tidak memetakan port supaya ia tidak boleh diakses pada hos;

docker run --name rth -p 8100:8080 -p 28015:28015 -d rethinkdb
Salin selepas log masuk

Ini akan menukar port dalam bekas kepada

(anda boleh menggunakan port hos yang berbeza jika perlu; cuma ingat untuk mengemas kini kod anda). Kami kini boleh berjaya menyambungkan perkara berikut: 28015 映射到主机上的端口 28015

package main

import (
    "fmt"
    "log"

    r "gopkg.in/rethinkdb/rethinkdb-go.v6"
)

func main() {
    _, err := r.Connect(r.ConnectOpts{
        Address:  "localhost:28015",
        Database: "test",
    })
    if err != nil {
        fmt.Println(err)
        log.Fatal("Could not connect")
    }
    fmt.Println("Connected")
}
Salin selepas log masuk

Atas ialah kandungan terperinci Ralat menyambung ke rethinkDB daripada golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan