英文:
I cant connect mysql database with fiber using golang
问题
我是你的中文翻译助手,以下是你要翻译的内容:
我是golang的新手,我想连接本地的mysql数据库。我正在使用mysql-workbench作为GUI工具,它使用3306端口。当我构建项目时,我遇到了listen tcp4 :3306: bind: address already in use
错误。如果我从app.Listen中更改端口,它可以工作,但无法连接我的mysql数据库。我该如何解决这个问题?请有人帮帮我吗?
package db
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func Connection() {
database, err := sql.Open("mysql", "root:123456789@/deneme")
if err != nil {
panic(err.Error())
}
fmt.Print("database connection OK")
db = database
}
func DB() *sql.DB {
return db
}
这是我的处理程序:
package handlers
import (
"fmt"
"go-login/db"
"log"
"github.com/gofiber/fiber/v2"
)
func Handlers() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World 👋!")
})
app.Post("/register", func(c *fiber.Ctx) error {
data, err := db.DB().Query("INSERT INTO user(email,password) VALUES('abcd@g.com','123456')")
if err != nil {
log.Fatal(err)
}
fmt.Println(data.Columns())
return c.SendString("OK")
})
log.Fatal(app.Listen(":3306"))
}
英文:
I'm new on golang and i want to connect localhost mysql. I'm using mysql-workbench for gui and it's using 3306 port. When i build project i'm getting
listen tcp4 :3306: bind: address already in use
error. If i change port from app.Listen it's working but won't connect my mysql database. How can i solve this issue ? Anyone help me please ?
package db
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func Connection() {
database, err := sql.Open("mysql", "root:123456789@/deneme")
if err != nil {
panic(err.Error())
}
fmt.Print("database connection OK")
db = database
}
func DB() *sql.DB {
return db
}
Also that's my handlers
package handlers
import (
"fmt"
"go-login/db"
"log"
"github.com/gofiber/fiber/v2"
)
func Handlers() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World 👋!")
})
app.Post("/register", func(c *fiber.Ctx) error {
data, err := db.DB().Query("INSERT INTO user(email,password) VALUES('abcd@g.com','123456')")
if err != nil {
log.Fatal(err)
}
fmt.Println(data.Columns())
return c.SendString("OK")
})
log.Fatal(app.Listen(":3306"))
}
答案1
得分: 3
将你的端口更改为其他任何端口
例如:
log.Fatal(app.Listen(":80"))
作为默认的HTTP应用程序。
或者
log.Fatal(app.Listen(":8000"))
如果你想要的话。
你不能使用另一个应用程序正在使用的端口。
英文:
change your port to anything else
example:
log.Fatal(app.Listen(":80"))
as a default http application.
or
log.Fatal(app.Listen(":8000"))
if you want.
You cannot use a port that another application is using.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论