大概思路如下:
- 修改 grafana 的数据库 grafana.db 中的 user 表的 admin 账号的密码,由于数据库密码是加密存储的,只能找到最初的 admin 密码加密后的密文进行替换
- 如何找到原始admin 加密后的密文呢, 1.可以安装了一个新的 grafana 查看它的grafana.db 种的 user 表数据 或者 网上查查密文
详细步骤:
- 在 docker 容器中,找到 grafana.db 文件,默认位置在 /var/lib/grafana/ 目录下
本来安装个 sqlite3 就能直接操作grafana.db了,由于容器内部连 apt 命令都不支持,所以只能把 db 文件拷贝到宿主机服务器使用sqlite3或者本地自己电脑上使用 navicat 操作了
- 在 docker 容器中,找到 grafana.db 文件,默认位置在 /var/lib/grafana/ 目录下
-
- 修改 admin 密码
- 方案一: 拷贝回本地电脑用 navicat pro操作,这种方式纯可视化操作,执行 update sql 即可
- 方案二: 使用 sqlite3
sqlite3 /var/lib/grafana/grafana.db
#使用update更新密码
update user set password ='59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt ='F3FAxVm33R' where login ='admin';
- 把重置密码的 db 文件覆盖回去.不放心操作的可以先备份原始 db文件后再覆盖
注意
:来回拷贝文件可能会导致 db 文件读写权限和用户权限问题,使用 chmod 和 chown命令 修改文件归属和读写权限
- 把重置密码的 db 文件覆盖回去.不放心操作的可以先备份原始 db文件后再覆盖
# 操作种涉及到的一些指令
# dicker 容器内外互相拷贝文件
docker cp grafana.db grafana:/var/lib/grafana/
docker cp grafana:/var/lib/grafana/ /opt/temp/
# 读写权限授权
chmod 777 grafana.db
# 用户归属权限修改
chown -R -v grafana:grafana grafana.db