python - 无法通过 Python 连接到 Mysql 服务器(错误 111)
问题描述
我最近开始学习 python 并且来自 PHP,我认为这样做的一个好方法是将 php 脚本转换为 python。我从基础开始:日期、列表、数组、函数……所以我尝试了基本的 mysql 连接。
问题来了,因为每次我执行脚本时都会返回一个异常,说明:
2003 (HY000): 无法连接到“xx.xxx.xxx.x”上的 MySQL 服务器 (111)
Traceback(最近一次调用最后一次):文件“connections/connection.py”,第 23 行,accountingCursor = accountingDb.cursor() NameError: name 'accountingDb' is not defined
有趣的是,当从 php 脚本尝试时,相同的连接似乎工作得很好。我真的不知道我错过了什么,但我一直在关注MySQL 网页上的官方文档,但仍然不知道可能出了什么问题。
这是我的尝试:
import mysql.connector
from mysql.connector import errorcode
try:
accountingDb = mysql.connector.connect(
host="xx.xxx.xxx.x",
database="dbname",
user="user",
password="pswrd"
)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Error en usuario o contraseña")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("No existe la Base de Datos")
else:
print(err)
accountingCursor = accountingDb.cursor()
解决方案
将localhost写为主机,然后尝试。像这样的东西
import mysql.connector
mydb = mysql.connector.connect(host="localhost",user="root",password="pass")
print(mydb)
mycursor=mydb.cursor()
推荐阅读
- javascript - 为什么我不能将空代码块分配给 Javascript 中的变量?
- python-3.x - AttributeError:“系列”对象没有属性“iterrows”
- javascript - 如何在 JavaScript 中将数组 (arr1) 的值推送到新的空数组 (arr2) 中?
- dart - 如何重置 ScanStreamTransformer 累加器?
- c - 为 32 位类型设置到给定位置的计数位
- wolfram-mathematica - Raspberry Pi 上的 Mathematica 无法读取简单的文本文件
- bash - awk 或类似命令,用于获取最后一列并在 Bash 中对其执行一些操作
- c++ - 修改上一行 c++
- r - 可以在 R 中使用 gganimate 对多边形填充进行动画处理吗?
- android - 使用 Moshi 的 Kotlin 代码生成的困难