"DataSource": "postgres://mmuser:pg@most@localhost:5432/mattermost?sslmode=disable\u0026connect_timeout=10",
这种密码 pg@most 怎么 转义呢
1
meik2333 2019-02-09 01:20:57 +08:00 via Android
不用转义啊,直接用不行么?
|
2
eslizn 2019-02-09 01:25:29 +08:00
urlencode
|
3
eslizn 2019-02-09 01:25:59 +08:00
这个和 json 没半毛钱关系 这是 uri 的编码问题
|
4
whi147 2019-02-09 08:28:43 +08:00 via Android
base64 编码
|
5
biggray0312 2019-02-09 08:34:51 +08:00 via Android
楼主试试 2 楼说的,url encode
|
6
abcdabcd987 2019-02-09 12:09:30 +08:00 7
楼主不妨试试看下面的这两种方法:
"DataSource": "user=mmuser password='pg@most' dbname=mattermost sslmode=disable connect_timeout=10" "DataSource": "postgres://mmuser:'pg@most'@localhost:5432/mattermost?sslmode=disable\u0026connect_timeout=10" 下面附上解题思路: 1. 从楼主的配置中可以看到一个关键词叫做 mattermost 2. Google "mattermost" 可以找到 GitHub: https://github.com/mattermost/mattermost-server 3. 在 GitHub 顶端搜索 DataSource 可以找到建立数据库连接的代码: https://github.com/mattermost/mattermost-server/blob/2ca222033cfd1d10f5e72228356665e4dbe31a55/store/sqlstore/supplier.go#L207 4. 往上翻可以看到 dbsql 是 "database/sql" 5. 不是很懂 golang,所以 Google 搜索了一下 "golang database/sql",找到了文档 https://golang.org/pkg/database/sql/#Open 6. 发现这是在 golang 标准库里面的,但是文档上面说标准库不包含任何驱动,"See https://golang.org/s/sqldrivers for a list of third-party drivers" 7. 从上面的列表里面可以看到有个 Postgres 的驱动: https://github.com/lib/pq 8. 从 lib/pq 的 GitHub 可以找到文档 https://godoc.org/github.com/lib/pq 9. 从 lib/pq 的文档中可以看到使用这个库的办法是导入 "github.com/lib/pq",于是在 mattermost 的 GitHub 里面搜索 "github.com/lib/pq" 可以验证确实用的是这个库 https://github.com/mattermost/mattermost-server/blob/26684716aae02c9bd1ce4dea14f42c6f36f718c8/store/sqlstore/store.go#L8 10. 从 lib/pq 的文档中可以看到,可以用单引号把值包起来,而且 lib/pq 支持两个格式的 connection string 不知道能不能成功,楼主加油! |
7
tinyproxy 2019-02-09 12:13:36 +08:00
URL 不用\转义,有兴趣找找 RFC 看看,没兴趣粘贴下面的代码改改就知道该输入啥了。
```python #!/usr/bin/env python3 from urllib.parse import quote_plus username = 'foo' password = 'bar@host:123' url = 'postgres://%s:%s@HOST:PORT' % (quote_plus(username), quote_plus(password)) print(url) ``` |
8
sutra 2019-02-09 14:52:41 +08:00
try this: pg%40most
|
9
sjmcefc2 OP @abcdabcd987 太棒了。恭喜发财。
|
10
E1n 2019-02-10 09:32:59 +08:00 via Android
@abcdabcd987 优秀。。。
|