Python-通过localhost连接MySQL无法正常工作,但127.0.0.1是否正常工作?

时间:2020-07-12 01:38:21

标签: python mysql

我刚刚设置了带有Mysql数据库的VPS。我可以使用mysql -uroot -p登录SSH终端中的数据库,但是下面显示的python文件无法建立连接,并且Access denied for root@localhost (using password: YES)出错。我对为什么会这样感到困惑。我100%确定密码正确。我正在使用mysql.connector

Python文件:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="pwd",
  database="db"
)

mycursor = mydb.cursor()

sql = "INSERT INTO test (tests) VALUES (%s)"
val = ("testing")

mycursor.execute(sql, val)

mydb.commit()

我对DB和VPS有点陌生,所以如果我第一次不理解的话,请多包涵。

谢谢!

1 个答案:

答案 0 :(得分:0)

除了@don的答案

我认为这与dns无法正确解析本地主机有关。我以前曾经经历过,但是除了将localhost映射到主机文件中的127.0.01之外,

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

您的bind-address行很可能是

bind-address = localhost 

您可以尝试将其更改为

bind-address = 127.0.0.1

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