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

如何在 App Engine 上使用 go-sql-driver/mysql

如何在 App Engine 上使用 go-sql-driver/mysql

Go
蝴蝶不菲 2021-07-09 14:01:37
中使用的启发式方法append可能不适用于所有应用程序。它专为在您不知道要存储的数据的最终长度时使用而设计。我会尽量减少您分配的额外容量,而不是稍后对其进行迭代。这是一种策略的简单示例,即仅在长度未知时使用缓冲区,并重用该缓冲区:type buffer struct {  names []string  ... // possibly other things}// assume this is called frequently and has lots and lots of namesfunc (b *buffer) readNames(lines bufio.Scanner) ([]string, error) {  // Start from zero, so we can re-use capacity  b.names = b.names[:0]  for lines.Scan() {    b.names = append(b.names, lines.Text())  }  // Figure out the error  err := lines.Err()  if err == io.EOF {    err = nil  }  // Allocate a minimal slice  out := make([]string, len(b.names))  copy(out, b.names)  return out, err}当然,如果你需要一些可以安全并发使用的东西,你需要修改它;为此,我建议使用缓冲通道作为存储缓冲区的漏桶。
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

您提供的 DSN(数据源名称)sql.Open与文档中的不一样:


import "database/sql"

import _ "<some mysql package>"


db, err := sql.Open("mysql", "cloudsql:my-instance*dbname/user/passwd")

编辑:看起来您正在为您的 SQL 包使用正确的 DSN 格式,如此处所述。我当时的猜测是它正确连接到数据库,但是用户未被接受,或者由于某种原因没有正确的权限。


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

添加回答

举报

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