我刚刚设置了带有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有点陌生,所以如果我第一次不理解的话,请多包涵。
谢谢!
答案 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),因此不建议这样做,但是可以解决问题。