@@ -231,29 +231,13 @@ func (m *MySQLPlugin) fetchShowInnodbStatus(db *sql.DB, stat map[string]float64)
231231 }
232232 defer rows .Close ()
233233
234- columns , err := rows .Columns ()
235- if err != nil {
236- return fmt .Errorf ("FetchMetrics (fetchShowInnodbStatus): error: %w" , err )
237- }
238-
239- // when mysql 5.0, return result 1 column.
240- // when more than mysql 5.1, return result 3 columns.
241- count := len (columns )
242- scanner := make ([]interface {}, count )
243- scannerPtr := make ([]interface {}, count )
244- for i := range columns {
245- scannerPtr [i ] = & scanner [i ]
246- }
247-
248234 for rows .Next () {
249- if err := rows .Scan (scannerPtr ... ); err != nil {
235+ var status string
236+ if err = rows .Scan (trashScanner {}, trashScanner {}, & status ); err != nil {
250237 return fmt .Errorf ("FetchMetrics (fetchShowInnodbStatus): error: %w" , err )
251238 }
252239
253- c , ok := scanner [count - 1 ].([]byte )
254- if ok {
255- parseInnodbStatus (string (c ), stat )
256- }
240+ parseInnodbStatus (status , stat )
257241 }
258242 return nil
259243}
@@ -411,6 +395,15 @@ func (m *MySQLPlugin) FetchMetrics() (map[string]float64, error) {
411395 }
412396 defer db .Close ()
413397
398+ v , err := m .fetchVersion (db )
399+ if err != nil {
400+ log .Println (err )
401+ } else {
402+ if v [0 ] < 5 || v [0 ] == 5 && v [1 ] < 7 {
403+ log .Fatalln ("This mysql server version is not supported." )
404+ }
405+ }
406+
414407 stat := make (map [string ]float64 )
415408 err = m .fetchShowStatus (db , stat )
416409 if err != nil {
0 commit comments