python - Python 脚本 (PyMySQL) 未连接到本地主机上的数据库
问题描述
当我使用 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
并启用了 port 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
并启用 port之后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
为localhost:3306
then 我也是一个错误(socket.gaierror: [Errno 8] nodename nor servname provided, or not known
)。
解决方案
只是我按照下面 URL 中给出的步骤,他们提供了从 MySQLdb 插件和 PyMySQL 插件连接的示例代码。
对我来说,MySQLdb 给出输出,PyMySQL 给出连接错误,就像你得到的一样。
https://www.a2hosting.in/kb/developer-corner/mysql/connecting-to-mysql-using-python
推荐阅读
- javascript - 如何使用firebase将多个文件下载为zip?
- odoo - 精度小数
- c++ - 修改找到最大 sub 小于或等于给定 sum 的子数组的 c++ 代码
- linux - 串行端口不适用于 .net core 3.1 中的 linux-x64
- python - 熊猫如何在数据框中的两个行值之间添加附加值
- excel - VBA 错误 400 循环遍历范围(36378 行)
- python - 列表理解可以帮助缩短此代码吗?
- rust - 分配给取消引用的自我 - 它有什么作用?
- sql - 从 SQL 列读取 XML 节点值
- python - python中是否有一个好的框架或包来比较一些参数?