11001 getaddrinfo gagal python mysql

执行操作

dari test_platform. peralatan. login_api impor db
db. buat_semua()

代码

from flask import Flask
from flask_restful import Resource, Api
from flask_sqlalchemy import SQLAlchemy
from flask_jwt_extended import JWTManager, create_access_token, jwt_required
app = Flask(__name__)
api = Api(app)
app.config[
    'SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://lnz:123456/platform_python'
db = SQLAlchemy(app)
app.config['JWT_SECRET_KEY'] = 'ceshiren'  # Change this!
jwt = JWTManager(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'lnz' ([Errno 11001] getaddrinfo failed)")
(Background on this error at: http://sqlalche.me/e/13/e3q8)

解决方案

修改这行代码为如下

app.config[
    'SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://lnz:[email protected]:3306/platform_python'

在使用Python连接数据库时,使用import pymysql 运行代码时报错,使用import mysql. connector 时就能连接数据库打印数据。不知道怎么解决,上网查了各种办法都没有解决,哪位大神指点一下。

1. 使用import pymysql 时代码及错误如下:

# 连接数据库
import pymysql
db = pymysql.connect(
    host='localhost ',
    user='root',
    password='root',
    db='test',
    port=3306,
    charset='utf8'
)
# 使用cursor()方法创建一个游标对象
cursor = db.cursor()
# 使用execute()方法执行SQL语句
cursor.execute("SELECT * FROM test")
# 使用fetall()获取全部数据
data = cursor.fetchall()
# 打印获取到的数据
print(data)
# 关闭游标和数据库的连接
cursor.close()
db.close()

11001 getaddrinfo gagal python mysql
11001 getaddrinfo gagal python mysql
11001 getaddrinfo gagal python mysql
11001 getaddrinfo gagal python mysql

Pertama, unduh database 

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_6 berikut, buka kompresi file dan salin ke folder seperti

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
7

Unduh Basis Data Sampel MySQL Python

Selanjutnya, login ke MySQL Server menggunakan

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
8 tool

mysql -u root -p

Code language: SQL (Structured Query Language) (sql)

Masukkan kata sandi untuk

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_9 pengguna

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_

Kemudian, buat database baru bernama 

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
6

mysql>create database python_mysql;

Code language: SQL (Structured Query Language) (sql)

Setelah itu, pilih database

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_6

mysql>use python_mysql;

Code language: SQL (Structured Query Language) (sql)

Terakhir, gunakan perintah ini untuk memuat data dari file

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)

Untuk memeriksa ulang pemuatan, gunakan perintah

mysql>create database python_mysql;

Code language: SQL (Structured Query Language) (sql)
2 untuk membuat daftar semua tabel dari database

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
6

mysql> SHOW TABLES;

Code language: SQL (Structured Query Language) (sql)

Outputnya akan

+------------------------+ | Tables_in_python_mysql | +------------------------+ | authors | | book_author | | books | +------------------------+ 3 rows in set (0.01 sec)

Code language: JavaScript (javascript)

Menghubungkan ke database MySQL menggunakan fungsi mysql>create database python_mysql;Code language: SQL (Structured Query Language) (sql)4

Mari kita lihat modul Python berikut (

mysql>create database python_mysql;

Code language: SQL (Structured Query Language) (sql)
5 )

import mysql.connector from mysql.connector import Error def connect(): """ Connect to MySQL database """ conn = None try: conn = mysql.connector.connect(host='localhost', database='python_mysql', user='root', password='SecurePass1!') if conn.is_connected(): print('Connected to MySQL database') except Error as e: print(e) finally: if conn is not None and conn.is_connected(): conn.close() if __name__ == '__main__': connect()

Code language: Python (python)

Mari kita periksa modul ini secara detail

  • Pertama, impor objek

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    _6 dan

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    7 dari paket MySQL Connector/Python
  • Kedua, gunakan fungsi

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    _4 untuk terhubung ke MySQL Server. Fungsi

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    _4 menerima empat parameter. host, basis data, pengguna, dan kata sandi. Fungsi 

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    4 membuat koneksi ke database 

    Enter password: ********

    Code language: SQL (Structured Query Language) (sql)
    6 dan mengembalikan objek

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    2
  • Ketiga, periksa apakah koneksi ke database MySQL telah berhasil dibuat menggunakan metode 

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    3. Jika terjadi pengecualian seperti server MySQL tidak tersedia, database tidak ada atau nama pengguna atau kata sandi tidak valid, Python akan memunculkan pengecualian. Blok 

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    4 menangani pengecualian dan menampilkan kesalahan
  • Keempat, tutup koneksi database menggunakan metode 

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    5 dari objek 

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    2

Untuk menguji modul 

mysql>create database python_mysql;

Code language: SQL (Structured Query Language) (sql)
5, gunakan perintah berikut

>python connect.py Connected to MySQL database

Code language: CSS (css)

Jika nama pengguna atau kata sandi tidak valid, Anda akan mendapatkan kesalahan berikut

1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Code language: JavaScript (javascript)

Jika Server MySQL tidak tersedia, Anda akan mendapatkan kesalahan berikut

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_0

Perhatikan bahwa, dalam contoh ini, kami mengkodekan konfigurasi database seperti

mysql>use python_mysql;

Code language: SQL (Structured Query Language) (sql)
8 ,

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
6 ,

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
9 , di dalam kode, Ini bukan praktik yang baik jadi mari kita perbaiki kode dengan menggunakan file konfigurasi database

Menghubungkan ke Database MySQL menggunakan objek mysql>use python_mysql;Code language: SQL (Structured Query Language) (sql)2

Pertama, buat file konfigurasi database bernama 

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)
2 dan tentukan bagian dengan empat parameter sebagai berikut

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_1

Kedua, buat modul baru bernama 

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)
3 yang membaca konfigurasi database dari file 

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)
2 dan mengembalikan objek kamus

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_2

Perhatikan bahwa kami menggunakan paket

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)
_5 untuk membaca file konfigurasi

Mari kita uji modul ini di REPL

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_3

Ini berfungsi seperti yang diharapkan

Ketiga, buat modul baru

mysql> source c:\mysql\python_mysql.sql

Code language: SQL (Structured Query Language) (sql)
_6  yang menggunakan objek

mysql>use python_mysql;

Code language: SQL (Structured Query Language) (sql)
2 untuk terhubung ke database

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
6

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_4

Mari kita periksa modul secara lebih rinci

  • Pertama, impor objek yang diperlukan termasuk

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    _2 ,

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    7 dari MySQL Connector/paket Python dan 

    mysql> SHOW TABLES;

    Code language: SQL (Structured Query Language) (sql)
    1 dari  modul

    mysql> SHOW TABLES;

    Code language: SQL (Structured Query Language) (sql)
    2
  • Kedua, baca konfigurasi database dan berikan untuk membuat instance baru dari objek

    mysql>use python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    2 di fungsi

    mysql>create database python_mysql;

    Code language: SQL (Structured Query Language) (sql)
    4. Kode lainnya berfungsi mirip dengan contoh pertama

Berikut adalah pengujian modul 

mysql> SHOW TABLES;

Code language: SQL (Structured Query Language) (sql)
5

Enter password: ********

Code language: SQL (Structured Query Language) (sql)
_5

Dalam tutorial ini, Anda telah mempelajari cara terhubung ke database menggunakan fungsi 

mysql>create database python_mysql;

Code language: SQL (Structured Query Language) (sql)
4 dan objek

mysql>use python_mysql;

Code language: SQL (Structured Query Language) (sql)
2. Kedua cara tersebut memiliki efek yang sama yaitu membuat koneksi ke database MySQL

Bagaimana Anda memeriksa MySQL berjalan atau tidak di Windows?

Langkah 2. Verifikasi MySQL Berjalan di Windows . Gulir ke bawah untuk menemukan MySQL, dan periksa kolom status . Klik kiri layanan MySQL untuk menyorotnya, lalu klik kanan untuk membuka menu konteks. Terakhir, klik kiri saat mulai.

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.

Bagaimana saya tahu jika MySQL sedang berjalan?

Untuk memeriksa versi yang dijalankan oleh MySQL Anda, ketik dan jalankan mysql -V (perhatikan huruf besar V) pada baris perintah .

Mengapa database MySQL tidak terhubung?

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.