Jump to content

Banco MySQL Onde estou errando?


alessandro.cardoso
Ir para a Solução Solucionado por Thanael,

Postagens Recomendadas

Boa Tarde Pessoal

Segue o código e o erro:

import mysql.connector

con = mysql.connector.connect(user='silcarpneus01', password='xxxxxxx', host='mysql.silcarpneus.com.br')

if con.is_connected():
db_info = con.get_server_info()
print("Conexão com o Banco realizada com Sucesso !!!", db_info)
cursor = con.cursor()
comando = f'SELECT * FROM silcarpneus01'
cursor.execute(comando)
resultado = cursor.fetchall()
print(resultado)

cursor.close()
con.close()
print("A conexão MySql foi encerrada")



******** SAIDA ******************

C:\Python\Contrato\venv\Scripts\python.exe C:\Python\Contrato\teste4.py 
Conexão com o Banco realizada com Sucesso !!! 5.5.62-log
Traceback (most recent call last):
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\connection_cext.py", line 661, in cmd_query
    self._cmysql.query(
_mysql_connector.MySQLInterfaceError: Nenhum banco de dados foi selecionado

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Python\Contrato\teste4.py", line 10, in <module>
    cursor.execute(comando)
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\cursor_cext.py", line 374, in execute
    result = self._cnx.cmd_query(
             ^^^^^^^^^^^^^^^^^^^^
  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Olá @alessandro.cardoso

O erro apresentado no seu código diz que "_mysql_connector.MySQLInterfaceError: Nenhum banco de dados foi selecionado", ou seja, faltou você informar o nome do banco de dados.

Segue abaixo um exemplo de código que também realiza a conexão.

from sqlalchemy import create_engine

conexao = create_engine('mysql+pymysql://{user}:{password}@{host}:{port}/{db}'.format(
        user='usuario',
        password='senha',
        host='host',
        port='porta',
        db='database',
    ))

Uma forma prática de realizar selects e já ter uma estrutura fácil de manipular é:

import pandas as pd
# Conexão seria a conexão com o banco definido no bloco de código acima
df = pd.read_sql(''' select * from tabela ''', conexao)

Espero que isso tenha lhe ajudado, caso contrário estou à disposição para ajudar no que for preciso.

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Boa Tarde

Não estou conseguindo.

Dá uma olhada como ficou meu código usando seu exemplo:

from sqlalchemy import create_engine
conexao = create_engine('mysql+mysqlconnector://silcarpn01_add2:password@mysql.silcarpneus.com.br/silcarpneus01')

connection = conexao.connect()
print("Conexão com o Banco realizada com Sucesso !!!", connection)
result = connection.execute('SELECT * FROM silcarpneus01')
for row in result:
print(row)



*********  SAIDA *****************

C:\Python\Contrato\venv\Scripts\python.exe C:\Python\Contrato\teste4.py 
Traceback (most recent call last):
  File "C:\Python\Contrato\teste4.py", line 5, in <module>
    connection = conexao.connect()
                 ^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3279, in connect
    return self._connection_cls(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3303, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 449, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1263, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 712, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 179, in _do_get
    with util.safe_reraise():
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 177, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 390, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 674, in __init__
    self.__connect()
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 900, in __connect
    with util.safe_reraise():
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 896, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\engine\create.py", line 643, in connect
    return dialect.connect(*cargs, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\sqlalchemy\engine\default.py", line 616, in connect
    return self.loaded_dbapi.connect(*cargs, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\pooling.py", line 322, in connect
    return CMySQLConnection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\connection_cext.py", line 140, in __init__
    self.connect(**kwargs)
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\abstracts.py", line 1363, in connect
    self._open_connection()
  File "C:\Python\Contrato\venv\Lib\site-packages\mysql\connector\connection_cext.py", line 323, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
RuntimeError: Failed raising error.
  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed

Olá @alessandro.cardoso.

Algumas dúvidas.

  • Seu banco de dados não possuir PORT ? Verifica a porta de conexão dele.
  • Sugiro manter a string de conexão igual a que mostrei "mysql+pymysql" para garantir (Peguei esse exemplo de uma conexão funcionando aqui que tenho)
  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Pessoal da TecnoSpeed
  • Solução

Uma dica é você tentar conectar nele através de um SGBD padrão (Dbeaver, MySQL) ou qualquer outro só para ir testando a conexão por ser mais visível e fácil.

Encontrei algo relacionado a seu problema em Conexão com banco de dados MYSQL hospedado no KingHost aparentemente a porta é 3306, tenta adicionar ela e testar aí. 

Acabei de testar via Dbeaver e realmente é a PORT 3306, recebendo somente o erro aqui por conta das credenciais. Então realiza a conexão novamente ali adicionando esse por 3306 conforme string de conexão passei nos comentários anteriores.

 

image.png

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Ficaria assim, então :

 

from sqlalchemy import create_engine

conexao = create_engine("mysql+pymysql://silcarpn01_add2:password@mysql.silcarpneus.com.br:3306/silcarpneus01")

Estava dando um erro mas é porque tinha que instalar a biblioteca pymysql

Instalei e deu certo.

Muito obrigado

  • Amei 2
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...