Python 脚本 (PyMySQL) 未连接到本地主机上的数据库

标签 python mysql

当我使用 PHP 时,只需在我的 php 脚本中编写以下几行即可连接到本地主机上的 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)/p>

在运行上述行之前,我首先激活了 XAMPP 并启用了端口 localhost:8080phpMyAdmin 位于 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 替换为 localhost:3306 那么我也是一个错误(socket.gaierror: [Errno 8] nodename nor servname provided, or not known )。

最佳答案

PyMySQL 接受端口作为一个独立的参数。试试这个:

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

请引用此链接:PyMySQL

关于Python 脚本 (PyMySQL) 未连接到本地主机上的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50150398/

相关文章:

python:将中间人注入(inject)方法调用

python - 如何用Pygame画一个棋盘并移动棋盘上的棋子?

python - Pandas 将组中的最后一项替换为 if NaN 与另一列

mysql - mysql 5.5.40 中的更新后触发器

java - java中参数化SELECT语句的问题

php - Php & MYSQL中的战斗系统

python - __init__.py 找不到本地模块

python - 如何根据 DCGAN 论文在扁平表示向量之上训练 L2-SVM 分类器

php - 使用分页在 Codeigniter 中使用复选框删除

MySQL 最大连接数