# в пароле - PullRequest
       40

# в пароле

0 голосов
/ 28 июня 2019

я использую этот драйвер

как отправить пароль? Если это сложно "Dsd0 @ E) 0 # jsdpAS) DJD!) D0 @ * d"

  connect, err := sql.Open("clickhouse", "tcp://127.0.0.1:9000?username=default&password=Dsd0@*E)0#jsdpAS)DJD*!)d0@*d&database=database&read_timeout=10&write_timeout=20")

они исправляют, но получают ошибку "[193] Неправильный пароль для пользователя по умолчанию"

1 Ответ

2 голосов
/ 28 июня 2019

Второй параметр - это URL-адрес (в этом контексте его часто называют DSN), поэтому неудивительно, что вам придется кодировать этот параметр в URL-адресе.

Используйте типы url.URL и url.Values ​​ для создания надежного URL-адреса:

q := make(url.Values)
q.Set("username", "default")
q.Set("password", `Dsd0@*E)0#jsdpAS)DJD*!)d0@*d`)
q.Set("database", "database")
q.Set("read_timeout", "10")
q.Set("write_timeout", "20")

dsn := (&url.URL{
    Scheme:   "tcp",
    Host:     "127.0.0.1:9000",
    RawQuery: q.Encode(),
}).String()

connect, err := sql.Open("clickhouse", dsn)

Теперь иди и измени свой пароль!

...