Ninatumia maktaba ya mysql-connector-python
ya mysql, kujaribu kuunganisha kwenye hifadhidata ya MariaDB
ya vifaa vingine ndani ya mtandao wa eneo, lakini imeshindikana, na inatoka moja kwa moja bila kutoa ujumbe wowote wa makosa.
Maelezo ya tatizo
Toleo la programu:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP ni 192.168.1.60
-
Mteja, IP ni 192.168.1.35
Msimbo wa Python ni kama ifuatavyo:
import mysql.connector
import logging
# Sanidi kumbukumbu ya magogo
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Inaunganisha kwenye hifadhidata...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Muunganisho umeanzishwa.")
# Unda kitu cha kishale, kinachotumika kutekeleza maswali ya SQL
cursor = connection.cursor()
# Pata hifadhidata zote
logging.info("Inatekeleza swali la SHOW DATABASES...")
cursor.execute("SHOW DATABASES")
# Chapisha hifadhidata zote na majina ya jedwali katika kila hifadhidata
for (database,) in cursor.fetchall():
logging.info(f"Hifadhidata: {database}")
# Badilisha hadi hifadhidata ya sasa
cursor.execute(f"USE {database}")
# Pata na uchapishe majedwali yote katika hifadhidata ya sasa
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Jedwali: {table}")
# Funga kishale na muunganisho
cursor.close()
connection.close()
logging.info("Muunganisho umefungwa.")
except mysql.connector.Error as err:
logging.error(f"Hitilafu: {err}")
except Exception as e:
logging.error(f"Hitilafu isiyotarajiwa: {e}")
Baada ya kuendesha msimbo huu, inatoka moja kwa moja bila kutoa ujumbe wowote wa makosa.
Niliangalia rekodi za huduma za seva ya MariaDB
, na kupata ujumbe ufuatao wa makosa.
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Kujaribu kutatua tatizo
Kwa sababu seva ya MariaDB
inaweza kupokea ombi la muunganisho, inamaanisha kuwa usanidi wa ngome wa vifaa vyote viwili ni wa kawaida.
Niliangalia ruhusa za mtumiaji aliyeingia, na nikagundua kuwa pia ni za kawaida.
Nilitafuta habari nyingi na kujaribu njia mbalimbali. Lakini kwa namna yoyote, sikuweza kutatua tatizo hili.
Hatimaye, nilijaribu kutumia maktaba nyingine ya python pymysql
(toleo: 1.1.1) kuunganisha kwenye seva ya MariaDB
, msimbo ni kama ifuatavyo:
import pymysql
# Unganisha kwenye seva ya MariaDB
conn = pymysql.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx"
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("Toleo la MariaDB:", cursor.fetchone()[0])
cursor.close()
conn.close()
Hakuna hitilafu zozote, muunganisho ulifanikiwa na toleo la MariaDB lilichapishwa.
Lakini bado sijui sababu ya kushindwa kuunganisha hapo awali.
Matoleo mengine ya ukurasa huu
Makala hii ina matoleo katika lugha nyingi.
Ikiwa ungependa kutoa maoni, tafadhali tembelea ukurasa ufuatao:
Kurasa hizi zinaweza tu kutazamwa, huwezi kutoa maoni au kuacha ujumbe, lakini hutoa chaguzi zaidi za lugha na wakati wa kupakia mfupi:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
Makala haya yametafsiriwa kutoka Chinese (Simplified) hadi Swahili na AI.