Golang : How to check if a connection to database is still alive ?
Problem :
How to check if a connection to database is still alive ?
Solution :
Use DB.Ping function. For example :
package main
import (
"database/sql"
"fmt"
// without the underscore _, you will get imported but not
// used error message
_ "github.com/go-sql-driver/mysql"
"os"
)
func main() {
// connect to our database server with data source name
// data source name configuration has the following parameters :
// [username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
// example config :
// user:password@tcp(127.0.0.1:3306)/database
conn, err := sql.Open("mysql", "db_username:db_password@protocol(address:port_num)/database_name")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = conn.Ping()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// if no error. Ping is successful
fmt.Println("Ping to database successful, connection is still alive")
conn.Close()
// this part should fail
err = conn.Ping()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// if no error. Ping is successful
fmt.Println("Ping to database successful, connection is still alive")
}
Output :
Ping to database successful, connection is still alive
sql: database is closed
exit status 1
References :
See also : Golang : Connect to database (MySQL/MariaDB) server
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+32.4k Golang : Regular Expression for alphanumeric and underscore
+6.3k Golang : Totalize or add-up an array or slice example
+17.1k Golang : Get future or past hours, minutes or seconds
+4.5k Facebook : How to place save to Facebook button on your website
+9.6k Golang : Get current, epoch time and display by year, month and day
+9.2k Golang : Accessing content anonymously with Tor
+7.6k Golang : Getting Echo framework StartAutoTLS to work
+9.5k Golang : List available AWS regions
+6.5k Golang : Find the longest line of text example
+8.1k Useful methods to access blocked websites
+13.1k Android Studio : Password input and reveal password example
+19.9k Golang : Count number of digits from given integer value