Python terhubung ke server sql jarak jauh

Python semakin populer selama bertahun-tahun dan perlahan menjadi identik dengan ilmu data dan DevOps. Python memiliki sintaksis yang mudah dipelajari dan toolbox mengagumkan yang membuatnya sangat serbaguna

Sebelum Anda mulai memanfaatkan alat Python seperti Dash, NumPy, dan panda, Anda harus dapat mengambil data Anda dari SQL Server. Python memiliki beberapa opsi berbeda untuk mencapai tujuan ini, dan kita akan fokus pada satu—SQLAlchemy.  

Menyiapkan

Jika Anda belum menginstal Python, silakan gunakan salah satu tautan berikut untuk menginstalnya di sistem operasi Anda

  • Windows
  • MacOS
  • Linux

Setelah Anda menginstal Python, Anda akan memanfaatkan manajer paket bawaan yang disebut pip untuk menginstal SQLAlchemy. Anda akan melewati flag --user ke pip untuk membuat instalasi lokal ke akun pengguna Anda

Anda sekarang telah menginstal SQLAlchemy di sistem Anda untuk digunakan, tetapi Anda tidak memiliki driver SQL Server. Driver SQL Server adalah apa yang akan digunakan Python untuk berkomunikasi dengan SQL Server. Gunakan kode berikut untuk menginstal driver itu

Sekarang Anda perlu membangun string koneksi ke SQL Server Anda. Pola yang digunakan untuk string koneksi akan terlihat seperti kode berikut; . Jika Anda ingin mencoba menggunakan Otentikasi Windows untuk membuat string koneksi, itu juga akan berfungsi. Pada contoh di bawah ini, saya menggunakan Azure SQL Database dengan data sampel AdventureWorks

Anda akhirnya memiliki semua bahan untuk membuat koneksi ke database SQL Server dan menjalankan kueri. Anda akan melakukan ini secara interaktif di jendela konsol Python dan kemudian membuat skrip Python

Permintaan Pertama kami melalui Python REPL

Selanjutnya, buka terminal Anda dan ketik Python

Anda sekarang berada di dalam Python REPL, dan Anda dapat mulai menulis Python secara langsung di sesi ini. Anda akan membuat mesin, lalu menyambungkan ke database SQL Server dan menjalankan kueri yang akan mengambil sepuluh item pertama dari tabel kategori produk

Sekarang setelah Anda mengerjakan apa yang diperlukan untuk mengambil data, Anda dapat mengubahnya menjadi skrip Python yang membuat basis di mana Anda dapat membuat solusi yang lebih canggih

Membuat Skrip Python

Dalam contoh saya, saya membuat file baru bernama query. py dan buka file itu untuk mulai mengeditnya dengan kode di bawah ini. Saya menyertakan komentar dengan bagian yang membutuhkan konteks tambahan

Sekarang, skrip Python ini dapat dieksekusi di terminal

Langkah selanjutnya

Sekarang setelah Anda memiliki fondasi untuk mengakses SQL Server dari Python, Anda dapat mulai menjelajahi alat-alat seperti panda, Dash, atau Notebook Jupyter. Dan ada banyak alat rapi lainnya yang tersedia di Python setelah Anda selesai menjelajahinya

Terima kasih sudah membaca,

Jamie

Python terhubung ke server sql jarak jauh

Jamie Phillips

Jamie (@phillipsj73) adalah Senior Cloud Engineer di SentryOne dan bekerja dari jarak jauh di East Tennessee. Dia telah bekerja dengan. NET sejak 2007 setelah ditemukan. Pengembangan NET di sekolah pascasarjana. Gelar Geologinya telah memberinya penghargaan untuk sistem dan proses besar yang telah menciptakan minat dalam Arsitektur Solusi, DevOps, dan Cloud. Pada siang hari dia bekerja di Windows, tetapi pada malam hari dia fokus pada Linux

Penyingkapan. Posting ini mungkin berisi tautan afiliasi, artinya ketika Anda mengklik tautan dan melakukan pembelian, kami menerima komisi

Sebagai pengembang perangkat lunak, Anda mungkin perlu menghubungkan ke server MySQL jarak jauh dalam aplikasi Anda. Namun, pengaturan default MySQL tidak mengizinkan koneksi jarak jauh. Dalam tutorial ini, Anda akan belajar cara terhubung ke server MySQL jarak jauh dengan Python

Kami akan menggunakan perpustakaan konektor Python MySQL, mari kita instal

pip3 install mysql-connector-python

Kode di bawah ini bertanggung jawab untuk menghubungkan ke server MySQL

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
_

Metode

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
_2 membutuhkan 4 argumen

  • import mysql.connector as mysql
    
    # enter your server IP address/domain name
    HOST = "x.x.x.x" # or "domain.com"
    # database name, if you want just to connect to MySQL server, leave it empty
    DATABASE = "database"
    # this is the user you create
    USER = "python-user"
    # user password
    PASSWORD = "Password1$"
    # connect to MySQL server
    db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
    print("Connected to:", db_connection.get_server_info())
    # enter your code here!
    _3. ini adalah server MySQL jarak jauh Anda, Anda dapat menggunakan alamat IP atau nama domainnya
  • import mysql.connector as mysql
    
    # enter your server IP address/domain name
    HOST = "x.x.x.x" # or "domain.com"
    # database name, if you want just to connect to MySQL server, leave it empty
    DATABASE = "database"
    # this is the user you create
    USER = "python-user"
    # user password
    PASSWORD = "Password1$"
    # connect to MySQL server
    db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
    print("Connected to:", db_connection.get_server_info())
    # enter your code here!
    _4. nama database yang ingin anda akses, anda bisa membiarkannya kosong jika anda hanya ingin terhubung ke server MySQL
  • import mysql.connector as mysql
    
    # enter your server IP address/domain name
    HOST = "x.x.x.x" # or "domain.com"
    # database name, if you want just to connect to MySQL server, leave it empty
    DATABASE = "database"
    # this is the user you create
    USER = "python-user"
    # user password
    PASSWORD = "Password1$"
    # connect to MySQL server
    db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
    print("Connected to:", db_connection.get_server_info())
    # enter your code here!
    _5. ini adalah nama pengguna yang akan Anda buat untuk akses jarak jauh, kita akan lihat sebentar lagi cara membuatnya
  • import mysql.connector as mysql
    
    # enter your server IP address/domain name
    HOST = "x.x.x.x" # or "domain.com"
    # database name, if you want just to connect to MySQL server, leave it empty
    DATABASE = "database"
    # this is the user you create
    USER = "python-user"
    # user password
    PASSWORD = "Password1$"
    # connect to MySQL server
    db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
    print("Connected to:", db_connection.get_server_info())
    # enter your code here!
    _6. kata sandi pengguna itu

Jika Anda mengubah parameter ini ke detail server Anda (bahkan jika detailnya benar), Anda akan menemui kesalahan kebingungan seperti ini

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)

Itu karena MySQL tidak mengizinkan koneksi jarak jauh, mari kita lihat apakah kita bisa memperbaikinya

Mengizinkan Koneksi Jarak Jauh di Server MySQL

Pertama, Anda harus mencari file

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
_7 di sistem Anda (
import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
8 di Windows), penempatan file ini dapat bervariasi tergantung pada versi MySQL dan sistem operasi Anda. Cara termudah untuk menemukan file konfigurasi MySQL Anda, adalah dengan mencarinya, mari jalankan perintah berikut

$ locate mysqld.cnf

Setelah saya menjalankan perintah di atas di Ubuntu 18. 04, jalur berikut dicetak

/etc/mysql/mysql.conf.d/mysqld.cnf

Jadi buka file itu dan cari baris yang dimulai dengan

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
9. Secara default, ini disetel ke
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
_0, yang berarti server hanya akan menerima koneksi lokal, Anda perlu menyetelnya ke alamat IP publik eksternal Anda, atau Anda ingin menyetelnya ke
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
1 jika alamat IP Anda tidak statis (dapat berubah pada . Jika Anda tidak dapat menemukan baris di file itu, tambahkan saja

Kedua, Anda harus mengizinkan klien/alamat IP jarak jauh Anda mengakses port MySQL di firewall

$ sudo ufw allow from  to any port 3306

Jika alamat IP jarak jauh Anda berubah atau Anda mungkin ingin mengizinkannya dari seluruh dunia (mungkin sedikit berbahaya), Anda dapat mengizinkan port tersebut untuk semua orang

$ sudo ufw allow 3306

Membuat Pengguna untuk Akses Jarak Jauh

Terakhir, buka server MySQL Anda dan buat pengguna

/* '%' means from any where in the world*/
mysql> CREATE USER 'python-user'@'%' IDENTIFIED BY 'Password1$';

Anda mungkin terbiasa membuat pengguna untuk localhost, dalam hal ini, kami menggunakan

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
2 karakter, yang berarti pengguna ini dapat diakses dari host jarak jauh mana pun

Sekali lagi, jika Anda menginginkan alamat IP jarak jauh tertentu alih-alih semua orang, Anda dapat mengubah

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
2 dengan '
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
4', akan terlihat seperti

mysql> CREATE USER 'python-user'@'' IDENTIFIED BY 'password';

Anda perlu mengganti

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'python-user'@'your ip address' (using password: YES)
4 dengan alamat IP sebenarnya dari mesin yang ingin Anda sambungkan

Jika Anda kembali ke skrip dan menjalankannya, kali ini Anda akan mendapatkan kesalahan yang berbeda

mysql.connector.errors.ProgrammingError: 1044 (42000): Access denied for user 'python-user'@'%' to database 'database'

Itu mudah untuk diperbaiki, kita perlu memberikan semua hak istimewa kepada pengguna yang baru dibuat, kembali ke server MySQL Anda, dan jalankan perintah berikut

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
_0

Dengan perintah ini, kami telah memberikan pengguna ini semua hak istimewa di semua database dan semua tabel, Anda dapat menyesuaikannya dengan cara apa pun yang Anda inginkan

Terakhir, mari hapus hak istimewa sehingga MySQL akan mulai menggunakannya

import mysql.connector as mysql

# enter your server IP address/domain name
HOST = "x.x.x.x" # or "domain.com"
# database name, if you want just to connect to MySQL server, leave it empty
DATABASE = "database"
# this is the user you create
USER = "python-user"
# user password
PASSWORD = "Password1$"
# connect to MySQL server
db_connection = mysql.connect(host=HOST, database=DATABASE, user=USER, password=PASSWORD)
print("Connected to:", db_connection.get_server_info())
# enter your code here!
_1

Kesimpulan

Luar biasa, sekarang dengan mengikuti tutorial ini, Anda dapat terhubung ke server MySQL jarak jauh Anda tidak hanya dari Python, tetapi dari bahasa pemrograman apa pun

Jika Anda tidak yakin bagaimana menggunakan konektor MySQL Python, lihat tutorial ini yang mengajarkan Anda cara membuat database, tabel, menambahkan baris ke tabel itu, mengambil data, dll.

Kursus yang Disarankan

Terakhir, banyak konsep basis data yang tidak dibahas secara mendetail di sini. Jika Anda merasa ingin menggali lebih dalam database dengan Python, saya sangat menyarankan Anda untuk mengambil kursus ini

Bagaimana cara menghubungkan database server SQL jarak jauh dengan Python?

Langkah-Langkah Menyiapkan Integrasi Python SQL Server menggunakan Pyodbc .
Langkah 1. Tetapkan Koneksi SQL Server
Langkah 2. Jalankan Kueri SQL
Langkah 3. Ekstrak Hasil Kueri ke Python
Langkah 4. Terapkan Modifikasi di SQL Server
Langkah 5. Mengotomatiskan Fungsi Python SQL Server

Bagaimana cara terhubung ke database SQL dari Python?

Untuk membuat koneksi antara database MySQL dan Python, metode connect() dari mysql. modul konektor digunakan . Kami meneruskan detail basis data seperti Nama Host, nama pengguna, dan kata sandi dalam pemanggilan metode, lalu metode tersebut mengembalikan objek koneksi.

Bagaimana cara mengakses database server SQL dari komputer lain dengan Python?

Untuk terhubung ke Database Engine dari komputer lain .
Di komputer kedua yang berisi alat klien SQL Server, masuk dengan akun yang diotorisasi untuk tersambung ke SQL Server, dan buka Management Studio
Di kotak dialog Sambungkan ke Server, konfirmasi Mesin Basis Data di kotak Jenis server

Bagaimana cara menghubungkan server SQL menggunakan alamat IP dengan Python?

DRIVER={SQL Server};SERVER=jubah;DATABASE=tes;UID=pengguna;PWD=kata sandi
DRIVER={SQL Native Client};SERVER=belati;DATABASE=tes;UID=pengguna;PWD=kata sandi
DRIVER={Klien Asli SQL Server 10. 0};SERVER=belati;DATABASE=tes;UID=pengguna;PWD=kata sandi