Saya menggunakan pustaka mysql-connector-python
dari mysql, mencoba menghubungkan ke database MariaDB
di perangkat lain di jaringan lokal, tetapi gagal, dan langsung keluar tanpa mengeluarkan pesan kesalahan apa pun.
Deskripsi Masalah
Versi perangkat lunak:
-
MariaDB server 10.11.6
-
mysql-connector-python 9.2.0
-
MariaDB server, IP adalah 192.168.1.60
-
Klien, IP adalah 192.168.1.35
Kode Python adalah sebagai berikut:
import mysql.connector
import logging
# Konfigurasi pencatatan log
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
try:
logging.info("Menghubungkan ke database...")
connection = mysql.connector.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx")
logging.info("Koneksi berhasil dibuat.")
# Membuat objek kursor untuk menjalankan query SQL
cursor = connection.cursor()
# Mendapatkan semua database
logging.info("Menjalankan query SHOW DATABASES...")
cursor.execute("SHOW DATABASES")
# Mencetak semua database dan nama tabel di setiap database
for (database,) in cursor.fetchall():
logging.info(f"Database: {database}")
# Beralih ke database saat ini
cursor.execute(f"USE {database}")
# Mendapatkan dan mencetak semua tabel di database saat ini
cursor.execute("SHOW TABLES")
for (table,) in cursor.fetchall():
logging.info(f" Table: {table}")
# Menutup kursor dan koneksi
cursor.close()
connection.close()
logging.info("Koneksi ditutup.")
except mysql.connector.Error as err:
logging.error(f"Error: {err}")
except Exception as e:
logging.error(f"Unexpected error: {e}")
Setelah menjalankan kode ini, program langsung keluar tanpa menampilkan pesan kesalahan apa pun.
Saya memeriksa catatan layanan di server MariaDB
dan menemukan pesan kesalahan berikut.
mariadbd: [Warning] Aborted connection 48 to db: 'unconnected' user: 'unauthenticated' host: '192.168.1.35' (This connection closed normally without authentication)
Mencoba Menyelesaikan Masalah
Karena server MariaDB
dapat menerima permintaan koneksi, konfigurasi firewall kedua perangkat normal.
Saya memeriksa izin pengguna login dan menemukan bahwa semuanya normal.
Saya mencari banyak informasi dan mencoba berbagai metode. Namun, saya tidak dapat menyelesaikan masalah ini sama sekali.
Terakhir, saya mencoba menggunakan pustaka python lain, pymysql
(versi: 1.1.1) untuk terhubung ke server MariaDB
, kodenya adalah sebagai berikut:
import pymysql
# Menghubungkan ke server MariaDB
conn = pymysql.connect(
host="192.168.1.60",
port=3306,
user="mysql",
password="xxx"
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("Versi MariaDB:", cursor.fetchone()[0])
cursor.close()
conn.close()
Tidak ada kesalahan, koneksi berhasil dan versi MariaDB dicetak.
Namun, saya masih tidak tahu mengapa koneksi sebelumnya gagal.
Versi Lain dari Halaman Ini
Artikel ini memiliki beberapa versi bahasa.
Jika Anda ingin memberikan komentar, silakan kunjungi halaman berikut:
Halaman-halaman ini hanya mendukung penjelajahan, dan tidak dapat memposting komentar atau pesan, tetapi menyediakan lebih banyak opsi bahasa dan waktu pemuatan yang lebih singkat:
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
Artikel ini diterjemahkan dari Chinese (Simplified) ke Indonesian oleh AI.