Tidak dapat terhubung ke server mysql di localhost python?

Kami memerlukan beberapa variabel global untuk proyek ini. Salah satunya akan mengatur objek baris yang dapat kita akses dari mana saja dalam kode, dan yang lainnya akan menyimpan jumlah baris dalam database. Dengan begitu, kita dapat mencegah program melewati jumlah total baris dalam tabel dan menabrak kita

Temukan dua baris ini dalam kode Anda

file_name = "default. png"
jalur = db_config. PHOTO_DIRECTORY + nama_berkas

Di baris setelah dua baris ini, atur kedua variabel ini

baris = Tidak ada
num_of_rows = Tidak ada

Kata kunci Tidak ada melakukan apa yang Anda harapkan - tidak menyimpan nilai dalam variabel

Sekarang atur fungsi di bagian atas kode Anda. Yang ini

def load_database_results()

Kami ingin mengembalikan nilai Boolean dari fungsi ini yang akan memberi tahu kami apakah database berhasil dimuat atau tidak. Jadi tambahkan saja kata kunci return untuk saat ini

def load_database_results()

kembali

Bagian atas kode Anda akan terlihat seperti ini

Tidak dapat terhubung ke server mysql di localhost python?

Saat menghubungkan ke database MySql, Anda perlu menentukan nama server (host), nama pengguna dan kata sandi, dan database yang ingin Anda sambungkan. Kami dapat menambahkan pengaturan ini di file db_config kami

Buka file db_config Anda. Seharusnya ada variabel PHOTO_DIRECTORY Anda di sana. Tepat di bawahnya, atur empat variabel berikut

DB_SERVER = "localhost"
DB_USER = "akar"
DB_PASS = "kata sandi"
DB = "Karyawan"

Kata-kata dalam huruf kapital hanyalah nama variabel yang kami buat. Anda dapat memanggil mereka sesuatu yang lain, jika Anda mau. Namun, nilai-nilai yang masuk ke dalamnya mungkin perlu diubah. DB_SERVER bagi kami adalah localhost. Ini adalah default saat menyiapkan MySql. Angka (dalam tanda kutip) "127. 0. 0. 1" juga akan berfungsi menggantikan localhost. Jika Anda mengatur di server yang berbeda, Anda harus mengetikkan detailnya di sini

Nama pengguna dan kata sandi default untuk MySql biasanya root untuk keduanya. Tetapi pada beberapa sistem, Anda mungkin perlu mengubah kata sandi menjadi hanya string kosong (ketikkan dua tanda kutip tunggal tanpa spasi di antaranya). Tetapi nama pengguna dan kata sandi yang Anda masukkan saat menginstal MySql harus masuk ke sini. Kami menggunakan root dan kata sandi yang sangat mudah ditebak untuk detail kami. Tak perlu dikatakan, jangan gunakan ini pada sistem produksi, yang akan dapat diakses oleh dunia luar. Ganti root dan kata sandi dengan detail Anda sendiri

Variabel DB memegang nama database kami, yaitu Karyawan. File db_config Anda akan terlihat seperti ini (tetapi dengan nama pengguna dan kata sandi Anda sendiri menggantikan milik kami)

Tidak dapat terhubung ke server mysql di localhost python?

Sekarang kembali ke fungsi load_database_results Anda di file db_main. Kami akan menambahkan mencoba .. kecuali blok. Jika kami tidak dapat masuk, kami akan menampilkan kotak pesan yang mengatakan alasannya. Tambahkan mencoba .. kecuali bagian pertama


def load_database_results():
try:
except pymysql.InternalError as e:
messagebox.showinfo("Connection Error", e)
return

def load_database_results()

mencoba

kecuali pymysql. Kesalahan Internal sebagai e

kotak pesan. showinfo("Kesalahan Koneksi", e)

kembali

Pengecualiannya adalah pymysql. Kesalahan Internal sebagai e. InternalError adalah kesalahan bawaan yang sudah dimiliki perpustakaan pymysql. Kesalahan apa pun ini disimpan dalam variabel yang disebut e. Ini kemudian ditampilkan di kotak pesan

Sebagai bagian percobaan, kami ingin mencoba dan terhubung ke server dan database. Tambahkan yang berikut ini di bagian coba

con = pymysql. terhubung(Host=db_config. DB_SERVER,
pengguna=db_config. DB_USER,
kata sandi = db_config. DB_PASS,
basis data = db_config. DB)

Jadi kami menggunakan pustaka pymysql, yang memiliki metode bernama connect. Di antara tanda kurung penghubung, kami memiliki empat parameter. host, user, password, dan database. Nilai untuk parameter ini berasal dari file db_config kami. Ketika fungsi load_database_results kami dijalankan, pymysql akan mencoba untuk terhubung ke database yang ditentukan menggunakan pengaturan lain yang kami sediakan. Jika tidak dapat terhubung, itu akan memunculkan kesalahan

Di bawah baris ini, tutup koneksi dengan

menipu. menutup()

Sekarang tambahkan kotak pesan

kotak pesan. showinfo("Terhubung ke Database", "Terhubung Oke")

Kode Anda akan terlihat seperti ini

Tidak dapat terhubung ke server mysql di localhost python?

Mari kita coba

Gulir ke bawah ke bagian bawah kode Anda dan temukan dua baris ini

tab_parent. pak(perluas=1, isi='keduanya')
membentuk. mainloop()

Tambahkan baris berikut sebelum mereka

load_database_results()

Dengan kata lain, panggil fungsi load_database_results menjelang akhir

Jalankan program Anda dan lihat apa yang terjadi

Jika semuanya berjalan dengan baik maka Anda akan melihat kotak dialog seperti ini

Tidak dapat terhubung ke server mysql di localhost python?

Jika program Anda macet, Anda mungkin telah melihat kesalahan seperti ini di jendela keluaran Anda

pymysql. berbuat salah. Kesalahan Operasional. (2003, "Tidak dapat terhubung ke server MySQL di 'localhost'. Tidak ada koneksi yang dapat dilakukan karena mesin target secara aktif menolaknya)"

Ini adalah OperationalError yang dapat Anda tangkap dengan menambahkan bagian pengecualian ke kode Anda

mencoba

kecuali pymysql. Kesalahan Internal sebagai e

kotak pesan. showinfo("Kesalahan Koneksi", e)

kecuali pymysql. OperationalError sebagai e

kotak pesan. showinfo("Kesalahan Koneksi", e)

Anda dapat menyalin dan menempelkan blok kecuali pertama Anda. Kemudian ubah InternalError menjadi OperationalError

Jalankan kembali program Anda. Jika Anda mendapatkan jenis kesalahan ini, kotak pesan sekarang akan ditampilkan, bukannya program Anda mogok

Tidak dapat terhubung ke server mysql di localhost python?

Alasan kesalahan ini adalah karena Anda mungkin belum memulai server. Jika Anda menggunakan Windows dan menggunakan Server WAMP, jalankan dari menu program. Tunggu ikon WAMP berubah menjadi hijau. Jika Anda menggunakan sistem Linux atau Mac, mulai server Anda dengan cara yang sama. (Pengguna Mac mungkin memiliki ikon server MAMP di folder Applications. Klik ini. )

Coba lagi, dan mudah-mudahan Anda akan melihat kotak pesan Connection OK

Jika masih gagal, maka periksa nama pengguna dan kata sandi Anda

PENGGUNA MAC

Satu masalah yang mungkin Anda miliki di Mac adalah dengan Kesalahan Operasional "Tidak dapat terhubung ke MySQL di Server localhost [Errno 61] Koneksi ditolak". Jika demikian, coba gunakan 127. 0. 0. 1 sebagai nama server dan menambahkan nilai parameter port sebagai 8889 (standarnya adalah 3306 dan ini dapat menyebabkan masalah pada Mac). Coba root dan root sebagai nama pengguna dan kata sandi. Jadi file db_config Anda adalah ini

DB_SERVER = "127. 0. 0. 1"
DB_PORT = 8889
DB_USER = "akar"
DB_PASS = "akar"
DB = "Karyawan"

Dan koneksi Anda merangkai ini

con = pymysql. terhubung(Host=db_config. DB_SERVER,
port=db_config. DB_PORT,
pengguna=db_config. DB_USER,
kata sandi = db_config. DB_PASS,
basis data = db_config. DB)

PENGGUNA LINUX

Jika Anda mendapatkan kesalahan yang ditakuti, "1049 Uknown database", tambahkan nomor port seperti di atas untuk Mac. Coba 8889 dulu lalu 8000. Jika Anda masih tidak senang, periksa di port mana MySQL Anda berada. Dari aplikasi Bitnami, klik tab Server Events

Tidak dapat terhubung ke server mysql di localhost python?

Periksa baris terakhir untuk nomor port. Gambar di atas memulai mysql pada port 8000

Selain kesalahan InternalError dan OperationalError, pymysql memiliki banyak kesalahan lainnya. Empat kode kesalahan lagi yang dapat Anda gunakan adalah

DataError
IntegrityError
NotSupportedError
ProgrammingError

Berikut beberapa kode yang menggunakan kesalahan di atas

Tidak dapat terhubung ke server mysql di localhost python?

Anda dapat mengubah kode agar cocok, jika diinginkan, karena merupakan praktik yang baik untuk menutupi kesalahan sebanyak mungkin

Sekarang kita memiliki koneksi, kita dapat menarik record dari tabel database. Kita akan melakukannya di pelajaran selanjutnya

Mengapa saya tidak dapat terhubung ke localhost MySQL?

Berikut adalah beberapa alasan kesalahan Tidak dapat terhubung ke server MySQL lokal mungkin terjadi. mysqld tidak berjalan di host lokal . Periksa daftar proses sistem operasi Anda untuk memastikan proses mysqld ada. Anda menjalankan server MySQL di Windows dengan banyak koneksi TCP/IP.

Mengapa tidak dapat terhubung ke server MySQL dari Python?

Anda perlu memulai server MySql di sistem lokal Anda. Konektor Python Anda tidak dapat terhubung dengan server MySql Anda. Jika Anda memiliki server MySql di sistem jarak jauh, tentukan IP. 3306

Bagaimana cara saya terhubung ke database MySQL lokal dengan Python?

Cara menghubungkan database MySQL dengan Python .
Instal modul konektor MySQL. Gunakan perintah pip untuk menginstal konektor MySQL Python. .
Impor modul konektor MySQL. .
Gunakan metode connect(). .
Gunakan metode kursor(). .
Gunakan metode eksekusi(). .
Ekstrak hasil menggunakan fetchall().
Tutup objek kursor dan koneksi

Bagaimana cara menghubungkan server MySQL ke localhost?

Hal ini dapat dilakukan dengan fungsi PHP mysql_connect. $mysqli = new mysqli("localhost", $username, $password, $database); Dengan baris ini PHP terhubung ke server database MySQL di localhost . Setelah koneksi dibuat, Anda harus memilih database yang ingin Anda gunakan.