为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 go 连接到 mysql?

如何使用 go 连接到 mysql?

Go
烙印99 2021-06-04 20:51:36
我一直在尝试用 go 连接 mysql,但我似乎可以成功。我只是想从表中获取一个值并将其设置为变量并打印它。我错过的也许只是一些明显的东西这是来自名为 bankdata 的数据库mysql> select * from accounts ;+----+----------+-----------------+----------+---------+| id | username | email           | facebook | twitter |+----+----------+-----------------+----------+---------+|  1 | user1    | email1@mail.com | userfb1  | NULL    ||  2 | user2    | email2@mail.com | NULL     | NULL    ||  3 | user3    | email3@mail.com | NULL     | NULL    |+----+----------+-----------------+----------+---------+我使用了两个驱动程序,我似乎明白他们两个都有什么问题使用go-sql-driverpackage mainimport (    "database/sql"    _ "github.com/Go-SQL-Driver/MySQL"    "log")const (    DB_HOST = "tcp(127.0.0.1:3306)"    DB_NAME = "bankdata"    DB_USER = /*"root"*/ "bankadmin"    DB_PASS = /*""*/ "1234")func main() {    dsn := DB_USER + ":" + DB_PASS + "@" + DB_HOST + "/" + DB_NAME + "?charset=utf8"    db, err := sql.Open("mysql", dsn)    if err != nil {        log.Fatal(err)    }    defer db.Close()    var str string    q := "select username from bankadmin.accounts where id = 1"    err = db.QueryRow(q).Scan(&str)    if err != nil {        log.Fatal(err)    }    log.Println(str)}这返回D:\_>go run dbtest.go2013/03/29 13:14:11 Error 1045: Access denied for user 'bankadmin'@'localhost'(using password: YES)exit status 1密码实际上是正确的,对于用户 root 和 bankadmin 以及在端口 3306 中运行的 mysql。但话又说回来,如果我将 DB_HOST 更改为“tcp(127.0.0.1:3000)”或将 127.0.0.1 更改为localhost,它给了我同样的错误。这将返回:D:\_>go run dbtest.goid    : 0name  :email :它看起来像 id 和字符串都是空的,就像它从未从 row.Scan 函数收到任何值一样。而且我不知道如何确保它们已连接,即使它们没有给我与以前的驱动程序相同的错误哦,我正在使用 WAMP 附带的 Windows 7、MySQL 5.5.8。如果我在这篇文章中犯了任何错误,请原谅我。这是我的第一篇文章。
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

问题不在于你的代码,问题在于你的 mysql 配置。您可能拥有正确的用户名和密码,但您可能尚未授权该用户使用 tcp 连接到数据库。

//img1.sycdn.imooc.com//60bd81770001a2a211550947.jpg

问题出在连接字符串上。我使用的用户名是错误的。要配置设置, 1. 转到“服务器”选项 2. 选择管理服务器连接 3. 选择连接部分 4. 单击密码部分中的存储在钥匙串按钮并输入新密码

你都准备好了。现在尝试测试连接按钮。当我尝试从 GO 程序访问数据库时,它对我有用。


查看完整回答
反对 回复 2021-06-07
  • 1 回答
  • 0 关注
  • 362 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信