Yasi
Yasi

Reputation: 35

db query error: failed to connect to server - please inspect Grafana server log for details

I'm new to Grafana and trying to connect Grafana to Microsoft SQL Server. I run both Grafana and SQL server on the same machine with Windows OS. In Grafana, I selected SQL Server data source and provided Host and DB name. I created a user in SQL server and granted reader permission to the user as per https://grafana.com/docs/grafana/latest/datasources/mssql/. Either for SQL server Authentication or Windows Authentication, I get the error db query error: failed to connect to server - please inspect Grafana server log for details. I checked then Grafana log file: lvl=eror msg="query error" logger=tsdb.mssql err="Unable to open tcp connection with host 'servername:1433': dial tcp [2a02:908:1391:9e80:c180:xxxx:xxxx:xxxx]:1433: connectex: No connection could be made because the target machine actively refused it." How can I force SQL server to give access to Grafana?

I should mention that, I haven't changed Grafana conf file. Do I need to change the default conf or create another conf file? The default DB configuration in Grafana conf file is:

[database]
# You can configure the database connection by specifying type, host, name, user and password
# as separate properties or as on string using the url property.

# Either "mysql", "postgres" or "sqlite3", it's your choice
type = sqlite3
host = 127.0.0.1:3306
name = grafana
user = root
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password =
# Use either URL or the previous fields to configure the database
# Example: mysql://user:secret@host:port/database
url =

# Max idle conn setting default is 2
max_idle_conn = 2

# Max conn setting default is 0 (mean not set)
max_open_conn =

# Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours)
conn_max_lifetime = 14400

# Set to true to log the sql calls and execution times.
log_queries =

# For "postgres", use either "disable", "require" or "verify-full"
# For "mysql", use either "true", "false", or "skip-verify".
ssl_mode = disable

# Database drivers may support different transaction isolation levels.
# Currently, only "mysql" driver supports isolation levels.
# If the value is empty - driver's default isolation level is applied.
# For "mysql" use "READ-UNCOMMITTED", "READ-COMMITTED", "REPEATABLE-READ" or "SERIALIZABLE".
isolation_level =

ca_cert_path =
client_key_path =
client_cert_path =
server_cert_name =

# For "sqlite3" only, path relative to data_path setting
path = grafana.db

# For "sqlite3" only. cache mode setting used for connecting to the database
cache_mode = private

Upvotes: 0

Views: 26289

Answers (2)

Docker host using IP address of your machine follow below steps:

  1. Open the CMD
  2. IPCONFIG /ALL
  3. Look for the IPV4 address under WiFi or vEtherner; in my case, it's 192.168.1.24 and 172.45.202.1, respectively
  4. Then try accessing the app hosted in the Docker container with the mapped port (e.g., 1433/5436)
  5. It simply worked using 192.168.1.24:1433 and 172.45.202.1:1433 in the same way to access all container apps hosted using Docker

Upvotes: 0

Dave
Dave

Reputation: 44

The settings in Grafana's configuration file refer to its internal database so you do not need to change any of these to connect to MS SQL Server.

  1. Try using "localhost" or "127.0.0.1" as the host name
  2. Make sure authentication is SQL Server Authentication
  3. Make sure Encrypt is false
  4. Check the SQL server logs for any errors

Upvotes: 1

Related Questions