簡體   English   中英

Python腳本(PyMySQL)無法連接到本地主機上的數據庫

[英]Python script (PyMySQL) does not connect to database on localhost

當我使用PHP時,只需在php腳本中編寫以下行即可連接到localhost上的phpMyAdmin:

<?php

$dbServername = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'Work';

$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

?>

(此腳本的目錄是/Users/User/.bitnami/stackman/machines/xampp/volumes/root/htdocs/index.php

在運行上述行之前,我首先激活了XAMPP並啟用了端口localhost:8080 phpMyAdmin位於http://localhost:8080/phpmyadmin/ 這樣可以很好地連接到數據庫。

現在,在Python中,我下載了PyMySQL ,並編寫了以下幾行代碼來完成相同的簡單任務:

import pymysql

conn = pymysql.connect(host='localhost', user='root', password='', db='Work')

(此腳本的目錄是/Users/User/PycharmProjects/First/Main.py

但是,當我嘗試運行此命令(首先激活XAMPP並啟用端口localhost:8080 )之后,出現以下錯誤:

Traceback (most recent call last):
  File "/Users/User/Library/Python/3.6/lib/python/site-packages/pymysql/connections.py", line 920, in connect
    **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 724, in create_connection
    raise err
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 713, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/User/PycharmProjects/GCP-OCR/Main.py", line 14, in <module>
    conn = pymysql.connect(host='localhost', user='root', password='', db='Work')
  File "/Users/User/Library/Python/3.6/lib/python/site-packages/pymysql/__init__.py", line 90, in Connect
    return Connection(*args, **kwargs)
  File "/Users/User/Library/Python/3.6/lib/python/site-packages/pymysql/connections.py", line 699, in __init__
    self.connect()
  File "/Users/User/Library/Python/3.6/lib/python/site-packages/pymysql/connections.py", line 967, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)")

如何解決此錯誤,最后將我的Python腳本連接到MySQL數據庫?

此外,請記住,即使我將localhost替換為127.0.0.1 ,也會遇到完全相同的錯誤。 而且,如果我用localhost:3306替換localhost ,那么我也是一個錯誤( socket.gaierror: [Errno 8] nodename nor servname provided, or not known )。

PyMySQL接受port作為獨立參數。 試試看:

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='Work')

參考此鏈接: PyMySQL

只要我按照下面URL中給出的步驟進行操作,它們就會提供示例代碼以連接MySQLdb插件和PyMySQL插件。

對我來說,MySQLdb提供輸出,而PyMySQL提供連接錯誤,就像您得到的一樣。

https://www.a2hosting.in/kb/developer-corner/mysql/connecting-to-mysql-using-python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM