Python-通过localhost连接MySQL不工作,但127.0.0.1正在工作?

Python-通过localhost连接MySQL不工作,但127.0.0.1正在工作?,python,mysql,Python,Mysql,我刚刚安装了一个VPS,上面有一个Mysql数据库。我可以使用mysql-uroot-p登录SSH终端中的数据库,但是,下面显示的python文件无法形成连接,并且访问错误被拒绝root@localhost(使用密码:是)。我不明白为什么会这样。我100%确信我的密码是正确的。我正在使用mysql.connector Python文件: 导入mysql.connector mydb=mysql.connector.connect( host=“localhost”, user=“root”, p

我刚刚安装了一个VPS,上面有一个Mysql数据库。我可以使用
mysql-uroot-p
登录SSH终端中的数据库,但是,下面显示的python文件无法形成连接,并且
访问错误被拒绝root@localhost(使用密码:是)
。我不明白为什么会这样。我100%确信我的密码是正确的。我正在使用mysql.connector

Python文件:

导入mysql.connector
mydb=mysql.connector.connect(
host=“localhost”,
user=“root”,
password=“pwd”,
database=“db”
)
mycursor=mydb.cursor()
sql=“插入测试(测试)值(%s)”
val=(“测试”)
mycursor.execute(sql,val)
mydb.commit()
我对DB和VPS的东西有点陌生,所以如果我一开始就不懂,请原谅我


谢谢

除了@don的回答

我认为这与dns没有正确解析本地主机有关。我以前也经历过这种情况,但除了在主机文件中将localhost映射到127.0.01之外

这也可以通过更改
/etc/mysql/my.cnf
文件中的值来修复

您的
绑定地址
行可能是

bind-address = localhost 
你可以试着把它改成

bind-address = 127.0.0.1

您也可以将其设置为
0.0.0.0
,但这将暴露与外部世界(包括公共IP)的连接,因此强烈建议不要这样做,但这将解决问题。

尝试127.0.0.1而不是localhost,看看这是否可行啊,这太疯狂了!成功了!!你能解释一下为什么localhost不起作用时这种方法能起作用吗?我认为它们是相似的。我花了三天时间在这上面,就这么简单,哇。我想这和dns没有正确解析本地主机有关。我以前也经历过这种情况,但除了在hosts文件中将localhost映射到127.0.01之外,我不确定是否还有其他方法可以修复它。