Python / mysql

Boa tarde, antes de mais, quero agradecer por me terem aceite nesta comunidade. Obrigado!
Não sou nem tenho aspirações a ser programador, quero apenas saber um pouco mais. Criei a minha pequena tabela (apenas 5 colunas) em mysql e agora pretendo preenchê-la através dum formulário em Python. Baseado num video youtube tentei criar a conecção com o mysql e dá erro (coisa q não acontece no video). Uso opensuse leap 42.2, e é verdade q não sei bem o que está instalado. Por defeito, tenho instalado o mariadb, instalei o Xampp (Creio que acompanha tb uma versão mysql), mysql-workbench e como connector, instalado tenho python3-mysql-connector-python-2.1.3-1.3.noarch. No meio de tudo isto instalei tb “pip install mysqlclient”. Oportunamente “colar” aqui o erro do idle.
Obrigado

Vamos tentar resolver isso daí!

Se tu conseguiu criar e preencher a tabela no banco de dados, já progrediu bastante!

Qual é o erro que tá aparecendo?

OBS: Muito cuidado, porque essa droga vicia! :laughing:

Python 3.4.5 (default, Jul 03 2016, 12:57:15) [GCC] on linux

Type “copyright”, “credits” or “license()” for more information.

                                 **O ERRO**

[COD]

====================== RESTART: /home/daddy/pyteste.py ======================
Traceback (most recent call last):
File “/home/daddy/pyteste.py”, line 2, in
conn = mysql.connector.connect(user=“root”,password= “”,host=“localhost”,database = “dbTeste”)
File “/usr/lib/python3.4/site-packages/mysql/connector/init.py”, line 179, in connect
return MySQLConnection(*args, **kwargs)
File “/usr/lib/python3.4/site-packages/mysql/connector/connection.py”, line 95, in init
self.connect(**kwargs)
File “/usr/lib/python3.4/site-packages/mysql/connector/abstracts.py”, line 719, in connect
self._open_connection()
File “/usr/lib/python3.4/site-packages/mysql/connector/connection.py”, line 210, in _open_connection
self._ssl)
File “/usr/lib/python3.4/site-packages/mysql/connector/connection.py”, line 144, in _do_auth
self._auth_switch_request(username, password)
File “/usr/lib/python3.4/site-packages/mysql/connector/connection.py”, line 177, in _auth_switch_request
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database ‘dbTeste’

[/COD]

                                                     **O MEU CODIGO**

[Cod]
import mysql.connector
conn = mysql.connector.connect(user=“root”,password= “”,host=“localhost”,database = “dbTeste”)
cursor = conn.cursor()
cursor.execute(“CREATE TABLE example(Id INT, Data VARCHAR (100));”)
conn.close()
[/COD]

O erro é: Unknown database 'dbTeste'

Qual o nome do banco de dados que você criou no MySQL? É esse mesmo? Ele tá acusando que não encontrou esse DB lá.

Não, não é esse, tal como disse estou a basear-me num video do youtube, que pelo que me é dado a perceber cria essa tabela … talvez eu esteja a fazer asneira …"cursor.execute(“CREATE TABLE example (Id INT, Data VARCHAR (100));”)"
quando muito este código cria uma tabela com nome “example”, nunca dbTeste!!

Dá o mesmo erro!
Mas pergunto este código, não é suposto criar a tabela “Example”?

O MySQL é um SGBD (Sistema de Gerenciamento de Banco de Dados). Um banco de dados é um container com várias tabelas dentro. Você pode criar vários bancos de dados no MySQL, e dentro de cada banco ter várias tabelas.

Quando você está programando e quer estabelecer uma conexão com o MySQL, você precisa especificar com qual banco de dados quer conectar. Por isso, você digitou essa linha aqui:

conn = mysql.connector.connect(user="root",password= "",host="localhost",database = "dbTeste")

Aquele parâmetro database = 'dbTeste' especifica para o MySQL o banco de dados que você quer se conectar.

Agora, essa linha daqui:

cursor.execute("CREATE TABLE example (Id INT, Data VARCHAR (100)");

Vai enviar esse comando que está entre aspas para aquele banco de dados específico, que você conectou na linha anterior. Esse comando cria uma tabela dentro do banco de dados especificado.

Como você fez para criar o banco de dados no MySQL? Tá usando aquele programa MySQL Workbench? A gente precisa descobrir o nome do banco que você criou, para passar naquele parâmetro database que falei ali em cima.

É verdade!! Diz-se que quem não sabe é como quem não vê!! Sei o que é uma base de dados, uma tabela, um formulário …! Durante todo o dia, não consegui interpretar essa linha de código “CREATE TABLE”!!! Associei sempre a “CREATE DATABASE”!
Pronto, esta parte está resolvida identifiquei a minha a minha base de dados e criou lá a Tabela “dbTeste”. Obrigado