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:

ZH EN ZH-TW JA

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.