Como conectar a um banco de dados MySQL usando Python
Conectar a um banco de dados MySQL usando Python
A linguagem Python é muito poderosa. Com ela, é possível realizar praticamente qualquer tipo de tarefa computacional desejada, desde a criação de scripts simples de configuração até algoritmos avançados empregados em machine learning e inteligência artificial.
Com o Python também podemos escrever scripts que se conectam a bancos de dados relacionais, permitindo realizar operações diversas como as operações CRUD básicas (Create, Read, Update, Delete) ou a execução de declarações SQL diversas e procedimentos armazenados, triggers, funções e outros tipos de rotinas.
Neste artigo vamos mostrar como realizar a conexão de um script em Python a um banco de dados MySQL, e como testar essa conexão. Para tal, vamos empregar o módulo mysql-connector-python, específico para a conexão a este sistema de gerenciamento de bancos de dados.
Passos para a conexão ao MySQL
Vejamos os passos que devemos seguir para realizar a conexão a um banco de dados MySQL usando um script em Python.
- Ter o MySQL Server instalado, configurado e em execução na máquina local. Preferencialmente, ter um banco de dados já criado para testar a conexão.
- É necessário instalar o conector para MySQL do Python, que pode ser instalado usando o gerenciador de pacotes pip (no prompt / terminal) com o comando a seguir:
$ pip3 install mysql-connector-python
- Com o método mysql.connector.connect() do conector MySQL Python iremos conectar o script Python ao banco de dados MySQL passando os parâmetros requeridos, que incluem o nome do host, nome do banco de dados, usuário e senha para a conexão..
- Após efetivar a conexão usamos o objeto retornado pelo método connect() para criar um objeto cursor que permitirá realizar operações no banco de dados, como as declarações SQL para consultas, inserções, atualizações e exclusões de registros, entre outras.
- Neste ponto podemos então executar as consultas SQL desejadas a partir do Python com o método cursor.execute().
- Após terminar de realizar as consultas, fechamos o objeto cursor com o método cursor.close(), e também fechamos a conexão ao banco MySQL com o método connection.close() para liberar os recursos do sistema.
- Não esquecer de capturar exceções caso algum erro possa ocorrer durante esse processo (veremos esse passo na próxima lição).
Código de conexão e teste (simplificado):
A seguir, temos um código simplificado para o teste de conexão do Python a um banco MySQL. Não vamos aqui usar blocos try /catch nem aplicar técnicas de segurança mais robustas, pois o objetivo hoje é simplesmente mostrar como usar o módulo mysql-connector-python para criar uma conexão, criar um cursor e executar uma declaração SQL no banco selecionado.
import mysql.connector con = mysql.connector.connect(host='localhost',database='db_MeusLivros',user='root',password='123**') if con.is_connected(): db_info = con.get_server_info() print("Conectado ao servidor MySQL versão ",db_info) cursor = con.cursor() cursor.execute("select database();") linha = cursor.fetchone() print("Conectado ao banco de dados ",linha) if con.is_connected(): cursor.close() con.close() print("Conexão ao MySQL foi encerrada")
Resultado:
======== RESTART: C:\Users\Boson\Downloads\Conectar-MySQL-IDLE.py ======== Conectado ao servidor MySQL versão 5.7.13-log Conectado ao banco de dados ('db_meuslivros',) Conexão ao MySQL foi encerrada >>>
Conexão iniciada e finalizada com sucesso ao banco de dados MySQL. Executamos também a declaração SQL do MySQL SELECT DATABASE(), a qual retorna o nome do banco de dados selecionado no momento.
No próximo artigo vamos executar declarações SQL no banco por meio desta conexão, incluindo a inserção de registros, consultas simples e operações de CRUD em geral.
Até!
como conectar ao MySQL que está em uma hospedagem? Tentei da mesma forma, mas parece que não é possível
Nesse caso, a princípio, você vai precisar do endereço do servidor de hospedagem, a ser inserido no lugar de “localhost” na string de conexão.
Eu conectei o Dbeaver ao banco de dados.
É possivel conectar o Python para executar um Select já pronto no DBeaver e extrai-lo em determinado diretorio?
Como conectar ao Oracle ?
Eu possuo o DBeaver instalado já com o Select dentro do oracle que preciso realizar a extração, como faria ?
Gostaria saber os detalhes sobre a senha em um caso real? O que devo preencher em host (endereço do server?), database (nome do banco de dados), user*, password*
*São usuários criados a partir do MySQL Workbench?
Olá Pedro! Em host você coloca o endereço do servidor: se estiver online, será o endereço fornecido pelo serviço de hospedagem, e se estiver em rede local, pode ser o nome do computador (hostname) ou seu endereço IP.
Em database você insere o nome do banco de dados que deseja acessar e manipular.
User é o usuário que tenha privilégio de acesso a este banco – geralmente criados no servidor, por exemplo a partir do MySQL Workbench, como você mesmo citou.
E password é a senha deste usuário.