Atualizado: 02/01/2025

Conectando-se ao MySQL - Node.js

Para trabalhar com um servidor MySQL em Node.js, existem vários drivers disponíveis. Os mais populares são mysql e mysql2. Em grande parte, eles são compatíveis entre si. Neste caso, usaremos mysql2, pois, segundo vários testes, ele oferece melhor desempenho.

Vamos começar instalando o pacote mysql2:

npm install --save mysql2

Criando a Conexão

Para criar uma conexão, utilizamos o método createConnection(), que recebe as configurações de conexão como parâmetro e retorna um objeto que representa a conexão.

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "senha_do_servidor"
});

As configurações passadas para o método podem incluir vários parâmetros. Os mais utilizados são:

  • host: o host onde o servidor MySQL está em execução. O valor padrão é "localhost".

  • port: o número da porta onde o servidor MySQL está em execução. O valor padrão é "3306".

  • user: o usuário MySQL utilizado para a conexão.

  • password: a senha do usuário MySQL.

  • database: o nome do banco de dados ao qual se está conectando. Este parâmetro é opcional. Se não for especificado, a conexão é feita ao servidor como um todo.

  • charset: a codificação da conexão, por exemplo, "UTF8_GENERAL_CI" é usada por padrão.

  • timezone: o fuso horário do servidor MySQL. Esse parâmetro é usado para converter os valores de data/hora do servidor para JavaScript. O valor padrão é "local".

Para estabelecer a conexão, podemos usar o método connect() do objeto connection:

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "senha_do_servidor"
});

connection.connect(function(err) {
    if (err) {
      return console.error("Erro: " + err.message);
    } else {
      console.log("Conexão com o servidor MySQL estabelecida com sucesso");
    }
});

O método connect() aceita uma função de callback que recebe um parâmetro contendo o erro, caso ocorra algum problema durante a conexão.

Possíveis Erros na Conexão

Se ocorrer um erro ao tentar se conectar ao servidor MySQL como, por exemplo:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

Nesse caso, é necessário executar o seguinte comando no MySQL Workbench:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Substitua 'password' pela senha do MySQL para o usuário root.

Fechando a Conexão

Para fechar a conexão, utilizamos o método end():

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  database: "usersdb",
  password: "senha_do_servidor"
});

// Testando a conexão
connection.connect(function(err){
    if (err) {
      return console.error("Erro: " + err.message);
    } else {
      console.log("Conexão com o servidor MySQL estabelecida com sucesso");
    }
});
// Fechando a conexão
connection.end(function(err) {
  if (err) {
    return console.log("Erro: " + err.message);
  }
  console.log("Conexão encerrada");
});

Ao executar a aplicação, se a conexão for bem-sucedida e posteriormente encerrada, veremos no console:

Conexão com o servidor MySQL estabelecida com sucesso
Conexão encerrada

O método end() garante que todos os pedidos pendentes sejam concluídos antes de encerrar a conexão com o banco de dados.

Se não chamarmos esse método, a conexão permanecerá ativa, e a aplicação Node.js continuará em execução até que o servidor MySQL feche a conexão.

Caso seja necessário encerrar a conexão imediatamente, sem esperar pela conclusão dos pedidos pendentes, pode-se usar o método destroy():

connection.destroy();
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com