grafana数据迁移到mysql,超级简单!亲测可用!!!
背景
grafana 默认采用的是sqlite3,当我们要以集群形式部署的时使用mysql较为方便,试了很多sqlite转mysql的方法要么收费,要么有很多瑕疵。
操作
从sqlite3切换数据库到mysql
准备工作
mysql 安装好
create database grafana
如果是docker则需要从docker中把grafana.db拷贝出来。
docker cp 容器id:/var/lib/grafana/grafana.db ./
grafana的默认路径
步骤
1.停服
Linux
systemctl stop grafana-server
Windows
直接关闭 grafana-server
2.导出数据(关键!)
导出数据使用脚本
#!/bin/bash
DB=$1
TABLES=$(sqlite3 $DB .tables | sed -r 's/(\S+)\s+(\S)/\1\n\2/g' | grep -v migration_log)
for t in $TABLES; do
echo "TRUNCATE TABLE $t;"
done
for t in $TABLES; do
echo -e ".mode insert $t\nselect * from $t;"
done | sqlite3 $DB
Linux直接执行以下命令导出,Windows可以使用git(git bash here,如果没有自行安装git)执行shell脚本
#默认数据库位置,如果修改了需要自行调整
export_sqlite.sh /var/lib/grafana/grafana.db > grafana.sql
3.修改配置文件
Linux默认位置 /etc/grafana/grafana.ini,Windows默认位置在conf/custom.ini
name为数据库名,user为数据库用户名。
上方的黑方框和下方的url任配其一即可,效果一样。
4.启动grafana-server初始化 mysql 数据库结构
Linux
systemctl start grafana-server
#初始化完成后停服
systemctl stop grafana-server
Windows
直接双击打开grafana-server即可,初始化完成后关闭grafana-server。
5.导入导出数据
登录数据库 use grafana
source grafana.sql
6.重新启动
Linux
systemctl start grafana-server
Windows
直接双击打开grafana-server即可。
参考:https://www.jianshu.com/p/bd8293455c1d