Como Conectar ao MySQL com Go

🐹 Episódio #08 da Série Golang.


Como Conectar ao MySQL com Go


Dando continuidade a Série Go veremos: Conexão ao MySQL, existem diversos bancos de dados que Go possui drivers para estabelecer a conexão.

No entanto, nesse exemplo veremos com MySQL, pois é um dos mais populares.


Conexão ao MySQL

Lembre-se de antes possui, lógico, o MySQL instalado no seu sistema.

mkdir myproject
cd myproject
go mod init gosql # Crie um módulo
go get -u github.com/go-sql-driver/mysql # Faça download do driver
vim main.go

main.go

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	dsn := "usuario:senha@tcp(127.0.0.1:3306)/nomedobanco"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	err = db.Ping()
	if err != nil {
		log.Fatal("Não conectou:", err)
	}

	fmt.Println("Conexão bem-sucedida!")
}

Compilar e rodar:

go build main.go
./main

Conexão bem-sucedida!


Rodar comandos

Você pode fazer INSERT, UPDATE, DELETE, SELECT,… Mas, nesse exemplo vamos mostrar somente o SELECT:

Vamos selecionar os campos: User e Password da tabela user do banco de dados mysql.

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	dsn := "usuario:senha@tcp(127.0.0.1:3306)/mysql"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	rows, err := db.Query("SELECT User, Password FROM user")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	for rows.Next() {
		var user, password string
		if err := rows.Scan(&user, &password); err != nil {
			log.Fatal(err)
		}
		fmt.Printf("User: %s, Password: %s\n", user, password)
	}

	if err := rows.Err(); err != nil {
		log.Fatal(err)
	}
}

Exemplo de saída:

User: mariadb.sys, Password: 
User: root, Password: *2A032F7C5BA932872F0F045E0CF6B53CF702F2C5
User: mysql, Password: invalid

Até o próximo artigo da série!



go series-go mysql


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!