mysql.connector.errors.ProgrammingError:1045(28000):用户'xpto'@'localhost'的访问被拒绝(使用密码:是)

时间:2019-02-15 19:29:04

标签: php python mysql mysql-python

当我尝试使用python mysql.connector 版本8.0.15访问mysql服务器(MariaDB v10.1.37)时遇到问题。
我试图从数据库中读取数据,但是尝试连接mysql服务器时出现错误。
python脚本的代码是:

import mysql.connector
from mysql.connector import errorcode

mysql_config = {
    'user':'xpto',
    'password':'1234',
    'host':'127.0.0.1', # I tried too 'localhost'
    'port':3306,        # I tried too '3306'
    'database':'manta'
}
print(mysql.connector.__version__)
conn = mysql.connector.connect(**mysql_config)
conn.close()

我得到的错误是:

  

mysql.connector.errors.ProgrammingError:1045(28000):访问被拒绝   用户“ xpto” @“ localhost”(使用密码:是)

所以我开始调试代码。

要检查我的mysql是否正在运行:

  • 在shell上,我执行'mysql -u xpto -p1234'进入服务器并写在数据库上,
  • 我在lampp上执行了PHP脚本,没有任何错误。该脚本创建与mysqli的连接并在DB上写。 通过phpAdmin和shell,我检查了此书面内容。

我用telnet和netstat快速检查了mysql端口是3306。

我的用户的特权是:

+-----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for xpto@localhost                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'xpto'@'localhost' IDENTIFIED BY PASSWORD '*F1D0B735317D750FFFFD3FE51E571EFBF4FFFF1D' WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------------------------------+

通过脚本python在我的数据库上写的另一种方法是执行一个子进程:

from subprocess import Popen, STDOUT

p = Popen(["mysql", "-u", "xpto", "-p1234"],
          stdin=PIPE, stderr=STDOUT)
p.communicate(b"exit")
if p.returncode != 0:
    print('incorrect password')

我执行此脚本没有任何问题。

另一种方法是将我的python脚本的权限更改为777,但错误仍然存​​在。

更多信息:
我在/ opt / lampp / htdocs /上下文中运行我的php脚本,在〜/ Desktop上下文中运行python脚本。

问题:
因此,我尝试了解为什么我无法使用mysql.connector连接到mysql服务器。
为什么会发生错误?我正在传递正确的用户名和密码。
拜托,您能帮我了解问题发生的原因吗?

0 个答案:

没有答案